Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Компоненты и классы
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 08.09.2009, 17:11
Eugene86 Eugene86 вне форума
Прохожий
 
Регистрация: 29.08.2009
Сообщения: 31
Репутация: 10
По умолчанию Программное создание и связывание ComboBox'ов

Создаю программно два Combobox'a.

Код:
var
  FormModel: TFormModel;
  var i,j:integer;
  cmbx:TComboBox;
  adit:TEdit;
  combomeas:TComboBox;
  dtpckr1:TDateTimePicker;
  massiv_combo1:array[0..25] of TComboBox;
  massiv_combo2:array[0..25] of TComboBox;
При нажатии на кнопку создаются Combobox'ы.
Код:
procedure TFormModel.AddEditsClick(Sender: TObject);
var sql:string;
begin
i:=i+1;
createedits(i);
end;
Назначаю первому из них процедуру: при событии OnSelect на первом ComboBox'e во втором появляется список.
Код:
procedure TFormModel.GroupSelectProc(Sender:TObject);
begin
      ADOQuery1.Close;
      ADOQuery1.SQL.Clear;
      ADOQuery1.SQL.Add('SELECT [Название]');
      ADOQuery1.SQL.Add('FROM purchase');
      ADOQuery1.SQL.Add('WHERE	[Группа] = '''+(Sender as TComboBox).Text+'''');
      ADOQuery1.Open;

  try                    // Заносим значения в список
  ADOQuery1.First;
  cmbx.Items.Clear;
  cmbx.Text:='';
  While not ADOQuery1.Eof do
    begin
    cmbx.Items.Add(ADOQuery1.Fields[0].Value);
      ADOQuery1.Next;
    end;
 // AddEdits.Enabled:=true;
  except
  end;
  cmbx.Visible:=true;
  adit.Visible:=true;
  combomeas.Visible:=true;
  dtpckr1.Visible:=true;
end;

procedure TFormModel.createedits(offset: integer);
var edit: tedit;
combo:TComboBox;
dtpckr:TDateTimePicker;
n:integer;
begin
n:=offset;
//Название
combo := TComboBox.Create(FormModel);
combo.Parent := FormModel;
combo.Left:=NameM.Left;
combo.Top := EditModel.Top+30 * offset;
combo.Visible := false;
//combo.Name := 'comboG'+inttostr(offset);
combo.Width:= NameM.Width;
combo.text := '';
combo.AutoComplete := False;
combo.ItemIndex:=0;
cmbx:=combo;
massiv_combo1[n]:=combo;

//Группа

//combobox
combo := TComboBox.Create(FormModel);
combo.Parent := FormModel;
combo.Left:=Group.Left;
combo.Top := Group.Top+30 * offset;
combo.Visible := true;
combo.Name := 'comboG'+inttostr(offset);
combo.Width:= Group.Width;
combo.text := '';
combo.AutoComplete := False;
combo.ItemIndex:=0;
combo.OnEnter:=GroupEnterProc;
combo.OnSelect:=GroupSelectProc;
massiv_combo2[n]:=combo;
end;

Я добавляю несколько Combobox'ov. При Событии OnSelect на любом из первых Combobox'ov список появляется только на последнем(см. вложениеexample.PNG)
Что надо написать в событии OnSelect, чтобы это исправить?
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 18:31.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025