Главная страница
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.029 c
1-39355
Snap
2003-03-01 21:48
2003.03.13
Doc generator


7-39618
Vcoder
2002-12-28 20:20
2003.03.13
Посекторное чтение диска


14-39575
SergeN
2003-02-25 10:32
2003.03.13
Шеф на больничном. Делать нечего.


1-39364
NetKnight
2003-03-02 13:05
2003.03.13
Защита программы от копирования


3-39187
Elshad
2003-02-21 11:24
2003.03.13
Пароль к sa в MSSQL Server 7.0