Создаю программно два 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, чтобы это исправить?