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


Автор: misskio 1.11.2006, 10:38
Здравствуйте еще раз.

По вчерашней теме у меня возникли новые вопросы.
Помогите, пожалуйста.

Я хочу обработать событие OnClick для динамически созданного чекбокса.
прямо в момент его создания
пишу:
Код

 with TCheckBox.Create(self) do
    begin
      CreateTLabel(panel1, 10, 'Фонды:');
      Top := 25;
      left := 20;
      Visible := True;
      Parent :=  panel1;
      Caption := 'все фонды';
      with OnClick do
        begin
          Query.SQL.Text:='update #tmp_cf_fund set bSelect = '+IIF(Checked,'1','0');
          Query.ExecSQL;
        end
    end;


во-первых, не уверена, что конструкция IIF(Checked,'1','0') верна
компилятор поймет, что Checked это свойство именно этого чекбокса?

во-вторых, компилятор ругается:

[Error] U_Filter.pas(310): Undeclared identifier: 'Sender'

Автор: Matematik 1.11.2006, 10:42
Нажми кнопку End на клавиатуре.

Автор: misskio 1.11.2006, 10:45
Цитата(Matematik @  1.11.2006,  10:42 Найти цитируемый пост)
Нажми кнопку End на клавиатуре. 


и?

Автор: Matematik 1.11.2006, 10:52
если находишься в браузере, то увидишь ссылки как это правильно делается

Автор: misskio 1.11.2006, 11:06
эх smile((
проблема вот в чем:

в этой же функции создается Query, где создается временная табличка, значения поля которого мне надо менять в зависимости от того, какое значение имеет свойство Checked чекбокса
и мне хотелось бы обработать это событие именно в том месте (в той функции), где создается чекбокс

или
как вариант
может просто написать в теле создания чекбокса
что-то типа того:

Код

if Checked = true then
begin
  Query.SQL.Text:='update #tmp_cf_fund set bSelect = '+'1';
  Query.ExecSQL;
end;
else 
begin
   Query.SQL.Text:='update #tmp_cf_fund set bSelect = '+'0';
   Query.ExecSQL;
end;




Автор: Matematik 1.11.2006, 11:58
в событие OnClick() передается указатель на твой CheckBox
Код

OnClick()
begin
  if TCheckBox(Sender).Checked then
    
end


Цитата
Помните: правильно оформив вопрос вы имеете гораздо большие шансы на получение ответа.


Автор: misskio 1.11.2006, 12:21
Цитата(Matematik @  1.11.2006,  11:58 Найти цитируемый пост)
в событие OnClick() передается указатель на твой CheckBox


но нет указателя на табличку

Автор: Matematik 1.11.2006, 12:29
CheckBox.OnClick - это указатель на процедуру которая выполняется при клике, в нее передается указатель на объект на который нажали. Это все. Все остальные связи программируй сама
Цитата(misskio @  1.11.2006,  12:21 Найти цитируемый пост)
но нет указателя на табличку

Указатель придется где-то хранить чтобы получить  к нему доступ в онклик.

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