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

Вниз

Как вручную описать событие?   Найти похожие ветки 

 
Mishel   (2003-03-03 09:28) [0]

Есть куча форм. На каждой по кнопке. Нужно всем кнопкам назначить событие OnClick что-то вроде
в каждой форме

1) Установка моего обработчика
Button1.OnClick := MyOnClick;

2) Возвращаю стандартный
Button1.OnClick := Button1OnClick;

Как можно объявить MyOnClick в модуле вообще не имеющем визуальных компонент? Проблема в том, что OnClick имеет тип TNotifyEvent и не соображу как свою процедуру подсунуть в этот тип...


 
MBo ©   (2003-03-03 09:30) [1]

OnClick должно быть методом любого объекта.


 
MBo ©   (2003-03-03 09:30) [2]

OnClick должно быть процедурой любого объекта.


 
smok_er   (2003-03-03 09:31) [3]

public
procedure MyOnClick(Sender TObject);

....

procedure mainform.myonclick(sender tobject);
begin
....
end;

Установка обработчика у тебя правильная.


 
Mishel   (2003-03-03 09:40) [4]

To: smok_er

так делал, нормально. Но это я должен во всех формах объявить процедуру и прописать ее код который будет абсолютно одинаковый, как раз и хотелось от этого избавиться. У меня есть в проекте модуть - обыкновенный pas файл (не содержащий TForm), куда все глобальные переменные и процедуры пихаю. Хочется туда воткнуть и обработчик.


 
smok_er   (2003-03-03 09:56) [5]

Ну так и воткни туда

type
TMyClass = Class
public
procedure MyOnClick(Sender TObject);

myClass: tmyclass;
....

procedure TMyClass.myonclick(sender tobject);
begin
....
end;

Button1.OnClick := MyClass.MyOnClick;






 
REA ©   (2003-03-03 09:59) [6]

А не проще все формы унаследовать от той, в которорй вся шняга уже обрабатывается?


 
Mishel   (2003-03-03 10:18) [7]

To: smok_er

Спасибо! Работает, даже есть еще где применить этот способ.

Тут нашел в Королевстве ссылочку
http://delphi.vitpc.com/treasury/event.htm
Тоже нормально работает + передаваемый компонент известен

procedure MyOnClick( P1, P2 : Pointer );
begin
if P2<>nil then Showmessage(TComponent(P2).Name);
end;

Переназначение
@Button1.OnClick := @MyOnClick;


To: REA
Такой способ тоже работает, но пока руки не дошли. Можно делать форму - пустышку, назначать в ней события и переопределять на другие формы...


ЗЫ: Всем спасибо, тема вроде пока закрыта...



 
smok_er   (2003-03-03 11:00) [8]

не за что! всегда рад помочь!



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

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

Наверх




Память: 0.48 MB
Время: 0.028 c
3-39225
{{{KOTOS}}}
2003-02-23 12:08
2003.03.13
МАСТЕРА ПОДСКАЖИТЕ


3-39200
VIB
2003-02-21 15:03
2003.03.13
DBGrid


3-39194
Ihtiandr
2003-02-18 18:02
2003.03.13
insert


14-39503
KMI
2003-02-25 10:10
2003.03.13
Организация приложения


8-39418
Foton
2002-11-30 10:31
2003.03.13
Построение графиков