Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.30;
Скачать: CL | DM;

Вниз

Как повесить обработчик на открытие/закрытие DataSet a у компонен   Найти похожие ветки 

 
Aleksandr.   (2005-01-18 12:55) [0]

Моему компоненту требуется при открытии заданного ему датасета заполнить некоторые данные с него, а при закрытии эти данные сбросить. Я сначала пошел по простому пути - при присваивании свойства DataSet его обработчики AfterOpen, AfterClose сохраняются, а ему назначаются свои внутренние, в теле которых выполняются и его обработчики. Но потом убедился, что последствия этого самые неприятные - в DT на форму кладу экземпляр TDataSet, назначаешь ему обработчики, кладу свой компонент, назначаю его DataSet вышеуказанный - и у того пропадают обработчики. Как можно по-умному сделать это отслеживание активности DataSet"a?


 
Юрий Зотов ©   (2005-01-18 13:02) [1]

> Aleksandr.   (18.01.05 12:55)

> Но потом убедился, что последствия этого самые неприятные

Очевидно. Есть железное правило - компонент не имеет права использовать события, доступные юзеру. Причину и последствия Вы уже видели.

> Как можно по-умному сделать это отслеживание активности
> DataSet"a?

Через внутренний объект TDataLink. Посмотрите, как это сделано, например, у TDBEdit.


 
Aleksandr.   (2005-01-18 13:22) [2]

Понял. Даже не знал этого правила...
Млин, есть в Инете статьи по использованию TDataLink? Что-то я сути в DBEdit не улавливаю...


 
Юрий Зотов ©   (2005-01-18 13:35) [3]

constructor TDBEdit.Create(AOwner: TComponent);
begin
 ...
 FDataLink := TFieldDataLink.Create;
 FDataLink.Control := Self;
 FDataLink.OnDataChange := DataChange;       // 1
 FDataLink.OnEditingChange := EditingChange; // 2
 FDataLink.OnUpdateData := UpdateData;       // 3
 FDataLink.OnActiveChange := ActiveChange;   // 4
end;


1..4 - вот это и есть те самые обработчики, которых Вам не хватало. Подробности см. в коде TDBEdit.


 
Aleksandr.   (2005-01-18 13:36) [4]

Такие сложности ради того, чтобы поиметь RecNo и RecordCount с TDataSet...



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

Текущий архив: 2005.10.30;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.053 c
5-1105351198
Siargey
2005-01-10 12:59
2005.10.30
Создание редактора свойств


3-1127279502
Каспер
2005-09-21 09:11
2005.10.30
AdoStoredProc вытащить возвращаемое значение


14-1128330835
kaif
2005-10-03 13:13
2005.10.30
Существует ли абсолютная истина?


1-1128438930
Jioniro
2005-10-04 19:15
2005.10.30
Форма без заголовка


14-1128718115
LordOfRock
2005-10-08 00:48
2005.10.30
Narod.Ru