Форум: "Основная";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];
ВнизПроцедура обработки события. Найти похожие ветки
← →
Новичек (2004-03-14 11:34) [0]Здравствуйте, Мастера.
Имеется такой код:type
TAnything = class(TClientSocket)
procedure AnythingClientRead(Sender: TObject; Socket: TCustomWinSocket);
end;
var
AnythingClient: TAnything;
procedure TAnything.AnythingClientRead(Sender: TObject; Socket: TCustomWinSocket);
begin
//Некоторый код
end;
Вопрос:
Нужно ли при создании экземпляра (AnythingClient := TAnything.Create(nil);
) явно задавать
процедуру обработки события OnRead (AnythingClient.OnRead := TAnything.AnythingClientRead)? Если нет - то почему?
← →
Defunct © (2004-03-14 11:44) [1]> Нужно ли при создании экземпляра (AnythingClient := TAnything.Create(nil);) явно задавать
процедуру обработки события OnRead (AnythingClient.OnRead := TAnything.AnythingClientRead)?
Нужно, потому что описав процедуру AnythingClientRead она является обычной процедурой, такой же как и любая другая. Просто из-за того, что она содержит в своем названии слова Client и Read она вызываться не будет. Вы ее нигде не вызываете, а сама по себе она не вызовется. Вы можете перекрыть конструктор сокета и инициализировать в нем поле OnRead этой процедурой:TAnything = class(TClientSocket)
constructor Create(AOwner: TComponent); override;
procedure AnythingClientRead(Sender: TObject; Socket: TCustomWinSocket);
end;
...
var
...
constructor TAnything.Create(AOwner: TComponent);
Begin
inherited;
OnRead := AnythingClientRead
End;
← →
Новичек (2004-03-14 11:48) [2]То есть если на форме лежит компонент ClientSocket, то ссылка на обработчик уже присутствует, хоть и неявно?
← →
Новичек (2004-03-14 11:55) [3]Тогда как же самому определить обработчик OnRead? Он должен быть методом какого-либо класса?
← →
Anatoly Podgoretsky © (2004-03-14 11:58) [4]Да поскольку это свойство и его значение равно nil.
Обработчики On для конечного пользователя компоненты, а не для разработчика и как правило устанавливаются в процессе разработки программы, через инспектор объектов, реже программно.
← →
Новичек (2004-03-14 12:57) [5]Надо же, научился :-)
И многое стало понятно.
Спасибо огромное, Мастера.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.033 c