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

Вниз

Присвоить св-ву объекту процедуру   Найти похожие ветки 

 
InsaneFarmer   (2006-07-27 11:09) [0]

Здравствуй, All. назрел у меня вопросец по дэлфи.

есть сторонний юнит, в котором объявлен объект TSnoopArp (если кто с ним сталкивался - тем более отпишитесь), у которого есть property OnCaptureARP: TOnCaptureARPEvent read FOnCaptureARP write FOnCaptureARP; FOnCaptureARP, в свою очередь, объявлен как TOnCaptureARPEvent;  

TOnCaptureARPEvent = procedure (
Sender: TObject;
PacketHeader: PPCAP_PKTHDR;
EthernetHeader: PETHERNET_HDR;
ARPHeader: PARP_HDR) of object;


всё бы хорошо, когда этот компонент бросаешь на форму. там с обработкой входящих арп не возникает проблем. а в консольном приложении я не могу понять, как присвоить этому компоненту свою обработку приходящих пакетов. т.е там надо написать процедуру-обработчик, и "зарегистрировать" её на компоненте. дескать, вот она должна обрабатывать. как это сделать ?


 
DimaBr   (2006-07-27 11:39) [1]

Вопросы по поиску и использованию готовых компонентов, редакторов или экспертов являются нарушением тематики и могут быть удалены.


 
Сергей М. ©   (2006-07-27 12:27) [2]


> как присвоить этому компоненту свою обработку


Точно так же как если бы это был не TSnoopArp, а любой другой компонент.


 
Elen ©   (2006-07-27 12:37) [3]

кажись так
procedure My(Sender: TObject;PacketHeader: PPCAP_PKTHDR;EthernetHeader: PETHERNET_HDR;ARPHeader: PARP_HDR);
begin
//..........
end;
..........
//Где то в создании формы
<Component>.OnCaptureARPEvent:=my
.......


 
Сергей М. ©   (2006-07-27 12:40) [4]


> Elen ©   (27.07.06 12:37) [3]


> кажись так


Кажись как раз не так.
My() должна быть процедурным методом объекта, а не рег.процедурой.


 
Юрий Зотов ©   (2006-07-27 13:43) [5]

> InsaneFarmer   (27.07.06 11:09)  

Одно из возможных решений - порождение потомка.

type
 TMySnoopArp = class(TSnoopArp)
 public
    procedure MyCaptureARP(Sender: TObject; PacketHeader: PPCAP_PKTHDR; EthernetHeader: PETHERNET_HDR; ARPHeader: PARP_HDR);
 end;

procedure TMySnoopArp.MyCaptureARP(Sender: TObject; PacketHeader: PPCAP_PKTHDR; EthernetHeader: PETHERNET_HDR; ARPHeader: PARP_HDR);
begin
 ... // Ваш код обработки события
end;

Теперь можно создать объект класса TMySnoopArp (вместо TSnoopArp) и назначить обработчиком его события OnCaptureARP его же собственный метод MyCaptureARP.



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

Форум: "Начинающим";
Текущий архив: 2006.08.13;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.066 c
15-1152882456
HeadHunter
2006-07-14 17:07
2006.08.13
Горячая вакансия для С++ программистов (Минск)


2-1153752165
VALUA
2006-07-24 18:42
2006.08.13
DBGrid - N колонки


15-1152793924
Плохиш
2006-07-13 16:32
2006.08.13
Подарок от Мелкогософта


1-1151589790
Gotami
2006-06-29 18:03
2006.08.13
Позиция курсора


15-1153338541
Furyz-dimodim
2006-07-19 23:49
2006.08.13
AJAX технология





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский