Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.11.04;
Скачать: CL | DM;

Вниз

Подскажите пожалуйста, возможно ли неявно вызвать процедуру   Найти похожие ветки 

 
Al500   (2007-10-10 08:29) [0]

Например, имеется процедура: Label1Click(Sender);, возможно ли ее вызвать зная, например, имя компонента - "Label1".
(FindComponent("Label1") as TLabel)Click(Sender) - не проходит.
(FindComponent("Label1") as TLabel).OnClick(Sender) - не устраивает.
Спасибо.


 
evvcom ©   (2007-10-10 08:54) [1]


> as TLabel)Click(Sender) - не проходит.

а точку перед Click поставить не пробовал?


 
Ega23 ©   (2007-10-10 08:56) [2]


> (FindComponent("Label1") as TLabel).OnClick(Sender) - не
> устраивает.


Чем?


> (FindComponent("Label1") as TLabel)Click(Sender) - не проходит.


А чем это от второго варианта отличается?


 
Ping   (2007-10-10 10:01) [3]

Вариант 1:

var
 L: TComponent;
begin
 L := FindComponent("Label1");
 if (L <> nil) and (L is TLabel) and Assigned(L.OnClick) then
   TLabel(L).OnClick(L);


Вариант 2:

var
 L: TComponent;
type
 TLocalLabel = class(TLabel);
begin
 L := FindComponent("Label1");
 if (L <> nil) and (L is TLabel) then
   TLocalLabel(L).Click;


Можно еще вариант 3 - сообщениями. Но это, мне кажется, лишнее...


 
ЮЮ ©   (2007-10-10 12:22) [4]

Из вопроса непонятно, почему нельзя просто
 Label1Click(Label1);
или автору действительно откуда-то известно только строковое представление имени компонента?


 
Германн ©   (2007-10-10 13:08) [5]


> возможно ли ее вызвать зная, например, имя компонента -
> "Label1".

Стремление использовать имя компонента = = неумение пользоваться свойством Tag и/или параметром Sender.


 
Al500   (2007-10-10 13:09) [6]

To evvcom, ega23:
нет такой ф-ии для Label, kak Click. При событии OnClick происходит закрытие компонетов TPanel, на которых расположены Label.
То ЮЮ: много компонентов Label, нужно для того, чтобы не описывать нажатие клавиш для каждой Label и возникновения события OnClick. У каждого Label - свое OnClick.


 
Al500   (2007-10-10 13:11) [7]

То Герман:
Вопрос был о вызове процедуры, имя компонента здесь ни при чем.


 
Al500   (2007-10-10 13:23) [8]

То Ping:
В обоих случаях происходит закритие родительского для Label компонента Panel.


 
Германн ©   (2007-10-10 13:27) [9]


> Al500   (10.10.07 13:11) [7]

Ну а мышкой-то ты кликаешь? Или хочешь только лишь симулировать клик?


 
Ping   (2007-10-10 13:39) [10]

В обоих случаях происходит закритие родительского для Label компонента Panel.

Это такой баг? Или фича? Или трава? Короче... ты ерундой занимаешься.


 
Al500   (2007-10-10 15:04) [11]

SORRY, ТРАВА, разобрался.
Спасибо всем!


 
Плохиш ©   (2007-10-10 19:01) [12]


> Al500   (10.10.07 13:09) [6]
> To evvcom, ega23:
> нет такой ф-ии для Label, kak Click.

Зато у TControl есть.

> много компонентов Label
...
> У каждого Label - свое OnClick.

Дурость какая-то...


 
evvcom ©   (2007-10-11 09:09) [13]


> Al500   (10.10.07 13:09) [6]
> To evvcom, ega23:
> нет такой ф-ии для Label, kak Click.

Конечно, нет. Это ж не функция, а метод-процедура. Да, я не проверял видимость метода в TLabel, тебе ж тоже надо дать хоть чуточку подумать. А Click для TLabel определен, просто немного спрятан, в секции protected, но добраться до него имеется возможность. См. вариант 2 из [3].

> То ЮЮ: много компонентов Label, нужно для того, чтобы не
> описывать нажатие клавиш для каждой Label и возникновения
> события OnClick. У каждого Label - свое OnClick.

Не понял. Если определил OnClick для каждого свое, то это уже есть "описание нажатия клавиш для каждой TLabel". В этом случае тебе опять же подойдет любой из вариантов в [3]

> SORRY, ТРАВА, разобрался.

Ты прежде чем на форуме слово молвить, от травы отходи :)



Страницы: 1 вся ветка

Текущий архив: 2007.11.04;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.017 c
15-1191579461
Vlad Oshin
2007-10-05 14:17
2007.11.04
шахматы. Белые выиграли?


2-1192287799
magik_snake
2007-10-13 19:03
2007.11.04
билд проекта....


1-1187682886
Den303
2007-08-21 11:54
2007.11.04
Присвоить свойство из строки


15-1190838030
Nic
2007-09-27 00:20
2007.11.04
На сайте есть логотип


2-1191875733
Vitek2
2007-10-09 00:35
2007.11.04
Что это такое?