Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > OnChange комбобокса: как обратится к Sender ?


Автор: malor 28.10.2011, 11:03
Программно создаются комбобоксы. К ним привязываем процедуру обслуживающую событие OnChange, и в этой самой процедуре нужно обратиться к самому комбобоксу, а именно:
Код
........................
  combobox := TCombobox.Create(RegistrationForm);
  combobox.Parent := RegistrationForm;
  combobox.Visible := true;
  combobox.OnChange := ComboboxChange;

........................
procedure TRegistrationForm.ComboboxChange(Sender:TObject);
var
  idAnswer : Word;
begin
  // Извлечем из глубин комбобокса желаемую цифру, чтоб потом что-то проверить по ней.
  idAnswer := Word(Sender.Items.Objects[Sender.ItemIndex]);
  if (CheckAdvanced(idAnswer)) then
  begin
      // bla-bla
  end;

end;


На строке  про 
  idAnswer := Word(Sender.Items.Objects[Sender.ItemIndex]);
выдаст:
[DCC Error] uRegistration.pas(428): E2003 Undeclared identifier: 'Items'

Delphi XE

Автор: AndreyIQ 28.10.2011, 11:07
Код

idAnswer := Word(TCombobox(Sender).Items.Objects[TCombobox(Sender).ItemIndex]);

Автор: malor 28.10.2011, 11:32
Спасибо, bro.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)