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

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

Как заменить искомый компонент 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


нет такого метода.

есть свойство-событие.

а метод и свойство - разные разницы.


Наверх

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