Главная страница
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.023 c
7-39615
maxim2
2003-01-16 06:29
2003.03.13
Зная дискриптор окно можно ли узнать его класс


7-39584
BJValentine
2003-01-14 20:22
2003.03.13
Драйвера


3-39186
NiBL
2003-02-20 13:11
2003.03.13
IBase


14-39473
copyr25
2003-02-25 13:51
2003.03.13
Созданная независимость поведения программы.


3-39176
Кило
2003-02-21 09:54
2003.03.13
Доки по Rave Report на русском и демки?