Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Какой параметр передавать в теле процедуры? [D5, Win2k]


Guitar ©   (2004-12-20 11:28:00) 

Мастера, подскажите, плс. Как правильно вызвать процедуру? Я вызываю не правильно, так как она не вызывается.

Хочу вызвать вот эту процедуру:

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
if radiogroup8.ItemIndex=1 then begin
 {Здесь код}
end;
end;


Вызываю таким образом

if radiogroup8.ItemIndex=1 then begin
   CheckBox1Click(sender);
end;


Где ошибка? ((( Может не тот параметр передаю?


TUser   (2004-12-20 13:09:00) [1]


> Что он (sender) означает?

Обычно передают там, кто вызвал данное события (это может быть надо, если один обработчик назначен собыватим для нескольких чекбоксов).

> Почему если его не написать, то выводит ошибку?

Потому, что процедуру надо вызывать с теми параметрами, с которыми она описана.


Digitman   (2004-12-20 13:07:00) [2]


> Что он (sender) означает?


этот параметр означает ссылку на объект, который возбудил событие.


> Почему если его не написать, то выводит ошибку?


потому что если прототип процедуры-обработчика события требует указания ссылки на объект, то ты обязан сослаться либо на реально существующий объект-генератор события либо указать nil.


Guitar   (2004-12-20 12:58:00) [3]

Скажите пожалуйста, что значит, когда я передаю процедуре такой параметр как sender?

CheckBox1Click(sender);

Что он (sender) означает? Почему если его не написать, то выводит ошибку?


Семен Сорокин   (2004-12-20 11:35:00) [4]

CheckBox1.Click;
CheckBox1Click(CheckBox1);


TUser   (2004-12-20 11:33:00) [5]

Надо передавать любой объект типа. Если в CheckBox1Click этот Sender никак не используется - можно nil. Если вызов прописан в обработчике к-л события, то можно и просто Sender написать - он там есть и типа TObject.

Вопрос - а как ты определил, что процедура не вызывается?


Наверх

Титульная страница Поиск, карта сайта Написать письмо