Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.06.2012, 00:55   #1
gsl180
Пользователь
 
Регистрация: 24.06.2012
Сообщений: 36
По умолчанию Проблема с ComboBox

Здравствуйте я начинающий, столкнулся с проблемой ComboBox
Как создать список понял, а вот как сделать, чтоб этот список управлял переменными. Скажем если пользователь выбрал "one" то x = 5
y = 10 а если "two" то x = 20 а y = 25.

Вот код программы
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
Button1 -> Enabled = False;

ComboBox1 -> Text = " Choose item";
ComboBox1 -> Items -> Add(" One");
ComboBox1 -> Items -> Add(" Two");
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
if((Key >= '0')&&(Key <= '9'))
return;
if(Key == VK_BACK)
return;
if(Key == VK_RETURN){
Button1 -> SetFocus();
return;}
Key = 0;

}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
ComboBox1 -> Items -> Add(ComboBox1 -> Text);
int x, y, v, z;



}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit1Change(TObject *Sender)
{
if((Edit1 -> Text).Length() == 0)
Button1 -> Enabled = False;
else
Button1 -> Enabled = True;

}
//---------------------------------------------------------------------------
gsl180 вне форума Ответить с цитированием
Старый 29.06.2012, 09:36   #2
Krok27
Форумчанин
 
Аватар для Krok27
 
Регистрация: 08.07.2010
Сообщений: 505
По умолчанию

Items в Combobox - это TStrings, у которого есть свойство Objects - набор объектов, привязанных к строкам. Метод AddObject добавляет пару строка-объект в набор данных, возвращает индекс новой пары строка-объект
Знающий не говорит, говорящий не знает (С) Лао Цзы
Krok27 вне форума Ответить с цитированием
Старый 29.06.2012, 14:03   #3
gsl180
Пользователь
 
Регистрация: 24.06.2012
Сообщений: 36
По умолчанию

Спасибо, но подскажите как можно это применить, потому что у меня не получается.
Код HTML:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{ char one, two;
ComboBox1 -> Text = "Choose";
ComboBox1->Items->AddObject("one", (TObject *)one);
ComboBox1->Items->AddObject("two", (TObject *)two);
ComboBox1->ItemIndex = 0;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
int x,y,r;


}
//---------------------------------------------------------------------------
void __fastcall TForm1::ComboBox1Click(TObject *Sender)
{

ComboBox1->Items->Objects[ComboBox1->ItemIndex];

}
//---------------------------------------------------------------------------
gsl180 вне форума Ответить с цитированием
Старый 29.06.2012, 15:14   #4
gsl180
Пользователь
 
Регистрация: 24.06.2012
Сообщений: 36
По умолчанию

Или если я пробую так то 49 сумму показывает а 44 нет.
Код HTML:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{

ComboBox1 -> Text = "Choose";
 ComboBox1 -> Sorted = true;
ComboBox1->Items->Add("640x360");
ComboBox1->Items->Add("320x240");

}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
float x,y,r;
int m, n;
if(ComboBox1 -> ItemIndex == m){
x = 20;
y = 24;}
if(ComboBox1 -> ItemIndex == n){
x = 25;
y = 24;}

r = x+y;
Edit1 -> Text =  FloatToStrF(r, ffGeneral, 5,2);

}
//---------------------------------------------------------------------------
void __fastcall TForm1::ComboBox1Click(TObject *Sender)
{

ComboBox1->Items->Strings[ComboBox1 -> ItemIndex];

}
//---------------------------------------------------------------------------
void __fastcall TForm1::ComboBox1KeyPress(TObject *Sender, char &Key)
{

int n = ComboBox1 -> Items -> Add("640x360");
ComboBox1 -> ItemIndex = n;
int m = ComboBox1 -> Items -> Add("320x240");
ComboBox1 -> ItemIndex = m;
}
//---------------------------------------------------------------------------
gsl180 вне форума Ответить с цитированием
Старый 10.07.2012, 14:12   #5
Krok27
Форумчанин
 
Аватар для Krok27
 
Регистрация: 08.07.2010
Сообщений: 505
По умолчанию

Код:

__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{ int one = 1, two = 2;
ComboBox1 -> Text = "Choose";
ComboBox1->Items->AddObject("one", (TObject *)one);
ComboBox1->Items->AddObject("two", (TObject *)two);
ComboBox1->ItemIndex = 0;
}


void __fastcall TForm1::ComboBox1Click(TObject *Sender)
{

int res = (int)ComboBox1->Items->Objects[ComboBox1 -> ItemIndex];

}

Цитата:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
float x,y,r;
int m, n; //эти переменные не инициализированы, поэтому что в них может 0, может 4587912548 - неизвестно
if(ComboBox1 -> ItemIndex == m){
x = 20;
y = 24;}
if(ComboBox1 -> ItemIndex == n){
x = 25;
y = 24;}

r = x+y;
Edit1 -> Text = FloatToStrF(r, ffGeneral, 5,2);

}
Знающий не говорит, говорящий не знает (С) Лао Цзы

Последний раз редактировалось Krok27; 10.07.2012 в 14:15.
Krok27 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с ComboBox reggga C++ Builder 1 11.10.2011 11:18
Проблема с Combobox Максим139 Помощь студентам 2 17.07.2011 09:21
Проблема comboBox Kors07 C# (си шарп) 2 09.05.2011 16:27
Проблема с Combobox и TextBox ARud Microsoft Office Excel 4 08.02.2010 17:54
Проблема с ComboBox boostman Общие вопросы Delphi 13 13.08.2008 15:01