Форум: "Основная";
Текущий архив: 2002.01.21;
Скачать: [xml.tar.bz2];
ВнизОбработка событий в дмнамически создаваемых компонентах Найти похожие ветки
← →
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 вся ветка
Форум: "Основная";
Текущий архив: 2002.01.21;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.003 c