Форум: "Начинающим";
Текущий архив: 2007.11.04;
Скачать: [xml.tar.bz2];
ВнизПодскажите пожалуйста, возможно ли неявно вызвать процедуру Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.045 c