Главная страница
    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.57 MB
Время: 0.043 c
1-39339
VIB
2003-02-28 16:53
2003.03.13
TBitmap


14-39578
Drweb
2003-02-26 22:35
2003.03.13
начальное познание Delphi


3-39202
Vick
2003-02-21 13:21
2003.03.13
Рейтинг чисел в строке таблицы в msSQL...


1-39356
Blacki
2003-02-28 10:29
2003.03.13
Алгоритм генерации серийника


1-39288
Эдуард
2003-03-03 22:31
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский