Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.03.13;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
3-39180
JibSkeart
2003-02-20 15:36
2003.03.13
Как узнать (подсчитать) точно траффик


8-39422
НаемНИК
2002-12-02 15:07
2003.03.13
Как указать не полный путь к Flash файлу?


1-39349
OxOTHuK
2003-03-01 22:36
2003.03.13
Мышь над компонентом


14-39494
XP
2003-02-24 23:50
2003.03.13
Работа с почтой


1-39336
Tundra
2003-02-28 17:44
2003.03.13
Как выполнить выражение содержащиеся в строке.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский