Вниз
Скачать: CL | DM;

Обработка событий в дмнамически создаваемых компонентах   Найти похожие ветки 

 
hacker ©   (2002-01-01 21:48) [0]

Проблема: Я создаю динамически компонент TClientSocket (в общем можно любой). И мне надо обработать событие OnRead. Где и что писать пока без понатия.
Чего делать?


 
ctapik-net ©   (2002-01-02 01:18) [1]

все очени просто
создаешь процедуру

procedure TMyForm.BlaBla(Sender: TObject; Socket: TCustomWinSocket) ;
Begin
...........
End ;


потом пишешь следующее

MySocket := TClientSocket.Create(Self) ;
MySocket.OnRead := BlaBla ;

Вот и все.


 
hacker ©   (2002-01-02 08:51) [2]

Все не так просто, формы то нет, это просто DLL и там просто обычные процедуры, вот и надо как-то такое присваивание сделать, но типы у обычной процедуры и события хоть как разные, Чего делать?!


 
ctapik-net ©   (2002-01-02 09:25) [3]

Логично предположить что подаваемый параметр Self заменить на NIL


 
hacker ©   (2002-01-02 10:59) [4]

Этим мы только отказываемся от владельца компонента, а на присваивание это не влияет. Проблема в том, что у события тип procedure(чего-то там) of object ; , а у процедуры просто procedure(чего-то там); и поэтому при присваивании ошибка - "несовместимость типов method poiter and regular procedure".


 
hacker ©   (2002-01-02 11:14) [5]

Сделал вот так: создал потомка от TClientSocket, описал там процедуры обработки и где создаю объект прописал ClientSocket.OnЧего-надо:=ClientSocket.новая_процедура_обработки.
так без проблем работает все кроме OnRead. Почему


 
hacker ©   (2002-01-02 11:18) [6]

OnRead тоже работает таким образом, это просто руки кривые.
Вот и все как-то сам разобрался.


 
Victor   (2002-01-02 11:33) [7]

Извините, что вмешиваюсь в дискуссию, но я поступаю в этих случаях проще - создаю нормальный TForm c нужным компонентом и набором обработчиков событий, а потом динамически клонирую сколько надо объектов описанного класса, добавляя их в TStringList (ну или куда хотите). Для этого и создан VCL, и по другому- извращение. Не хочется VCL- откройте книжку по C++, почитайте про сокеты, и опишите класс на основе WinSocket, сейчас у меня нет примеров под рукой.
Удачи.


 
hacker ©   (2002-01-04 07:39) [8]

Victor, С++ хорошо и TForm тоже, но на C++ пока не перешел(хотя надо бы), а TForm в DLL просто так пихать - вроде нехорошо получается



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.007 c
1-66266
!Новичоккккк
2002-01-03 22:23
2002.01.21
ПОМОГИТЕ!


14-66340
Храмов Владимир
2001-11-24 12:31
2002.01.21
Программа


1-66274
Paul_2
2002-01-04 11:32
2002.01.21
Работа с Word через Delphi


4-66399
Roman_
2001-11-19 00:06
2002.01.21
Вывод текста по кругу (поправьте плиз алгоритм)


1-66235
AST
2001-12-30 01:42
2002.01.21
Размеры в Qreport




   Наверх