![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как заменить искомый компонент 1 раз? [D7, WinXP]
kyn66 © (2005-09-02 12:20:00)Здравствуйте мастера. Из числа компонентов на форме мне нужно отыскать
с конкретным номером и работать с ним. Как мне поступить правильно с
передачей его имени? Если грамоздко но верно будет так:
if TSpeedButton(FindComponent('Tur' + IntToStr(Tur + 1) + 'Btn')) <> nil then
begin
TSpeedButton(FindComponent('Tur' + IntToStr(Tur + 1) + 'Btn')).OnClick(TSpeedButton(FindComponent('Tur' + IntToStr(Tur + 1) + 'Btn')));
TSpeedButton(FindComponent('Tur' + IntToStr(Tur + 1) + 'Btn')).Down := True;
end;
А почему у меня так не работает без ошибки?
Var
Comp : TComponent;
...
Comp := TSpeedButton(FindComponent('Tur' + IntToStr(Tur + 1) + 'Btn'));
if Comp <> nil then
begin
Comp.OnClick(Comp);
Comp.Down := True;
end;
...
Конкретно метод onClick при подстановке выдает ошибку. Как должно быть правильно?
Reindeer Moss Eater (2005-09-02 14:40:00) [1]Так вот я и спрашиваю, где ты нашел событие OnClick у класса TComponent?
Var
Comp : TComponent;
...
Comp.OnClick(Comp);
Digitman (2005-09-02 14:39:00) [2]
> kyn66 © (02.09.05 14:35) [10]
> Comp получаю после FindComponent, а у него на выходе TComponent
а приведение типа на что существует, спрашивается ?
kyn66 (2005-09-02 14:35:00) [3]Дык ведь Comp получаю после FindComponent, а у него на выходе TComponent.
Reindeer Moss Eater (2005-09-02 14:02:00) [4]>А что.. TButon.onClick(Sender) не существует?
А что, из этого как-то следует, что он существует и у TComponent?
Плохиш (2005-09-02 13:43:00) [5]Comp.Click;
kyn66 (2005-09-02 13:34:00) [6]Мне из программы нужно вызвать обработчик
Digitman (2005-09-02 13:28:00) [7]
> TButon.onClick(Sender) не существует?
что значит
> событие не прикручивается
?
ты что хочешь-то ? назначить некий обработчик или вызвать процедуру-обработчик ?
kyn66 (2005-09-02 13:23:00) [8]>> Reindeer Moss Eater
А что.. TButon.onClick(Sender) не существует? Поэтому я и задаю вопрос, как правильно подставить, не придумаю...
PVOzerski (2005-09-02 13:19:00) [9]И еще. Может, конечно, я неверно понял, но
Comp.OnClick(Comp); - это не "подстановка метода" (т.е. назначение обработчика имелось в виду?), а разовый вызов процедуры (можно этак и nil вызвать, если обработчик не назначен :( ). Разница, надеюсь, понятна?
Reindeer Moss Eater (2005-09-02 12:42:00) [10]Var
Comp : TComponent;
...
Comp.OnClick(Comp);
Где ты нашел OnClick у TComponent?
kyn66 (2005-09-02 12:28:00) [11]Ошибся, пардонс, событие не прикручивается.
Digitman (2005-09-02 12:23:00) [12]
> метод onClick
нет такого метода.
есть свойство-событие.
а метод и свойство - разные разницы.