evle
1 + int rand(100); | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору ViktorSila 03:27 03-05-2005 Цитата: И дабавить в него пару своих событий(переход на следующее поле таблицы, и т.п.). | А какая разница потомку от DataSet, кто ходит по полям? Он, вроде, должен только на изменения реагировать. По сути: Объявляешь тип TXXXEvent = procedure(Sender: TObject, Position: .... .... ....) of object; (Параметры определяешь исходя из того, что хочешь наружу сообщить: на какое поле перешли, может еще что-нибудь. Sender пусть будет - пригодится). Объявляешь свойство этого типа (public): OnXXX: TXXXEvent; и поле FOnXXX: TXXXEvent; (private) Объявляешь protected-процедуру DoOnXXX В ней пишешь: Код: procedure TYYYDataSet.DoOnXXX; begin if Assigned(FOnXXX) then FOnXXX(Self); end; | Когда ты по каким-либо признакам поймешь, что событие произошло, вызывай DoOnXXX. (Переход на другое поле ты вряд-ли поймаешь, он обычно происходит совсем в другом объекте)
---------- For every complex problem, there is a solution that is simple, neat, and wrong. |
|