программные компоненты и их события

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
SeventhSon
новенький
Сообщения: 56
Зарегистрирован: 17.02.2009 00:57:17

программные компоненты и их события

Сообщение SeventhSon »

объявлен массив:
ChkBx:Array[0..127] of TCheckBox;
и процедура:
procedure TForm1.ChkBxOnChng(Sender: TObject);
begin
self.Caption:='Waiting';
self.Font.Color:=clBlue;
end;

по нажатию кнопки делаю так:
ChkBx[i]:=TCheckBox.Create(ScrollBox1);ChkBx[i].Parent:=ScrollBox1;ChkBx[i].Top:=5+15*i;ChkBx[i].Left:=5;
ChkBx[i].OnChange:=@ChkBxOnChng;

после этого на форме появляется чекбокс,но при чекании его Caption и Font.Color меняется у самой формы!я почему-то думал что self. обращается к самому объекту вызвавшему это событие, т.е. Caption должен измениться у чекбокса!
подскажите пожалуйста что я делаю не так!менять надо свойства чекбокса!
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

SeventhSon писал(а):procedure TForm1.ChkBxOnChng(Sender: TObject);

Тут же русским языком написано, что процедура объявлена для TForm1, следовательно и self будет относится к форме. Вы что, разве слона то и не заметили? :)
SeventhSon
новенький
Сообщения: 56
Зарегистрирован: 17.02.2009 00:57:17

Сообщение SeventhSon »

очень ценный совет:)а делать-то что?как свойства чекбокса менять?как-то черезе Sender. добраться до свойств можно?
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

Код: Выделить всё

(Sender as TCheckBox).Caption:='Waiting';
SeventhSon
новенький
Сообщения: 56
Зарегистрирован: 17.02.2009 00:57:17

Сообщение SeventhSon »

Спасибо получилось:))
Ответить