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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.04.2011, 17:41   #1
Chipandos
 
Регистрация: 20.03.2011
Сообщений: 6
Восклицание Как связать параметры из СomboВox?

Помогите, пожалуйста, реализовать следующую задачу:
1.Из СomboВox1 выбирается значение b.
2.В СomboВox2 появляются значения D, которые соответствуют – b.
3.Необходимо как-то еще связать с каждым значением D – соответствующее ему значение f0.

Заполнение значение D в СomboВox2 в зависимости от b СomboВox1 происходит следующим образом:

Код:
 procedure TForm1.ComboBox1Change(Sender: TObject);
 begin
 case combobox1.ItemIndex of
 0:begin combobox2.Items.Clear; combobox2.Items.Add('8');combobox2.Items.Add('10');combobox2.Items.Add('12');com bobox2.Items.Add('13') end;
 1:begin combobox2.Items.Clear; combobox2.Items.Add('11');combobox2.Items.Add('12');combobox2.Items.Add('13');co mbobox2.Items.Add('14');combobox2.Items.Add('15');combobox2.Items.Add('16') end;
 end;
 end;
Как реализовать 3-е условие? Заранее благодарен.
Изображения
Тип файла: jpg табл.jpg (13.3 Кб, 38 просмотров)

Последний раз редактировалось artemavd; 30.04.2011 в 19:33.
Chipandos вне форума Ответить с цитированием
Старый 30.04.2011, 18:26   #2
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

Так примерно:
Код:
type
  TObj = class
    f0 : Double;
  end;

procedure TForm1.CB1Change(Sender: TObject);
var Ob : TObj;
    I : Integer;
begin
  CB2.Items.Clear;
  for I := 0 to CB2.Items.Count-1 do
    CB2.Items.objects[I].Free;
  case CB1.ItemIndex of
     0:begin
        Ob := TObj.Create; Ob.f0 := 0.29;
        CB2.Items.AddObject('8', Ob);
        Ob := TObj.Create; O.bf0 := 0.23;
        CB2.Items.AddObject('10', Ob);
        Ob := TObj.Create; Ob.f0 := 0.19;
        CB2.Items.AddObject('12', Ob);
        Ob := TObj.Create; Ob.f0 := 0.17;
        CB2.Items.AddObject('13', Ob)
     end;
     1:begin
       //...
     end;
  end;
end;
Прик вне форума Ответить с цитированием
Старый 01.05.2011, 18:03   #3
Chipandos
 
Регистрация: 20.03.2011
Сообщений: 6
По умолчанию

Куда написать
"type
TObj = class
f0 : Double;
end;"
Если написать в общий type, то Delphi ругается на остальные процедуры, а если написать после основного type, то не хочет работать???
Chipandos вне форума Ответить с цитированием
Старый 01.05.2011, 18:06   #4
Romantik_FM
Пользователь
 
Аватар для Romantik_FM
 
Регистрация: 21.12.2010
Сообщений: 12
По умолчанию

Цитата:
Сообщение от Chipandos Посмотреть сообщение
Куда написать
"type
TObj = class
f0 : Double;
end;"
Если написать в общий type, то Delphi ругается на остальные процедуры, а если написать после основного type, то не хочет работать???
Выше основного поставте
Не ошибается тот, кто ничего не делает
Romantik_FM вне форума Ответить с цитированием
Старый 01.05.2011, 18:36   #5
Chipandos
 
Регистрация: 20.03.2011
Сообщений: 6
По умолчанию

Помогите

Последний раз редактировалось Chipandos; 01.05.2011 в 19:38.
Chipandos вне форума Ответить с цитированием
Старый 01.05.2011, 19:24   #6
Chipandos
 
Регистрация: 20.03.2011
Сообщений: 6
По умолчанию

как извлечь значение f0 из
"case ComboBox1.ItemIndex of
0:begin
Ob := TObj.Create; Ob.f0 := 0.29;
combobox7.Items.AddObject('8', Ob);
Ob := TObj.Create; Ob.f0 := 0.23;
combobox7.Items.AddObject('10', Ob);
Ob := TObj.Create; Ob.f0 := 0.19;
combobox7.Items.AddObject('12', Ob);
Ob := TObj.Create; Ob.f0 := 0.17;
combobox7.Items.AddObject('13', Ob)
end; "
чтобы в дальнейшем его использовать при вычислениях?
Chipandos вне форума Ответить с цитированием
Старый 01.05.2011, 19:36   #7
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

Как в посте #2 написано, так и надо сделать.
Описание класса используется только в этой процедуре, поэтому нет необходимости объявлять его где либо еще.
Если этот класс в дальнейшем будет использоваться в других процедурах/функциях, то его описание надо будет переместить после слова implementation и после {$R *.dfm} вместе со словом type.
Для примера:
Код:
var
  Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

type
  TObj = class
    f0 : Double;
  end;

procedure TForm1.FormCreate(Sender: TObject);
Цитата:
как извлечь значение f0
Код:
D := TObj(combobox7.Items.Objects[combobox7.ItemIndex]).f0
Прик вне форума Ответить с цитированием
Старый 01.05.2011, 19:45   #8
Chipandos
 
Регистрация: 20.03.2011
Сообщений: 6
По умолчанию

Большое спасибо за помощь, Прик!!!
Chipandos вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Windows-программа + web-обвязка, как связать и как заставить работать? Человек_Борща Общие вопросы по программированию, компьютерный форум 3 23.04.2011 19:07
Параметры запуcка. как обрабатывать параметры вида -somecmd "?" Человек_Борща Общие вопросы Delphi 1 15.01.2011 15:48
ПАРАМЕТРЫ-КОНСТАНТЫ, НЕТИПИЗИРОВАННЫЕ ПАРАМЕТРЫ ПОДПРОГРАММ, МАССИВЫ И СТРОКИ ОТКРЫТОГО ТИПА Kira09 Паскаль, Turbo Pascal, PascalABC.NET 0 19.12.2010 17:28
Как передать в поток параметры? И как из потока параметры достать? Anekdot Общие вопросы Delphi 2 19.02.2010 22:40
Как связать таблицы ksmspb Microsoft Office Excel 3 24.10.2009 19:35