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

Вниз

В ДатаСете непонятность   Найти похожие ветки 

 
Чапаев ©   (2006-11-22 16:27) [0]

procedure TDataSet.SetActive(Value: Boolean);
begin
 if (csReading in ComponentState) then
 begin
   FStreamedActive := Value;
 end
 else
   if Active <> Value then
   begin
     if Value then
     begin
       DoBeforeOpen;
       try
         OpenCursor;
       finally
         if State <> dsOpening then
           OpenCursorComplete;
       end;
     end else
     begin
       if not (csDestroying in ComponentState) then DoBeforeClose;
       SetState(dsInactive);
       CloseCursor;
       if not (csDestroying in ComponentState) then DoAfterClose;
     end;
   end;
end;

Это зачем же они так делают?


 
novill ©   (2006-11-22 16:33) [1]

А в чем вопрос? если SetActive производится в процессе разрушения, то не обрабатывать события.


 
Anatoly Podgoretsky ©   (2006-11-22 16:37) [2]

> Чапаев  (22.11.2006 16:27:00)  [0]

Затем, что компонент может находиться в состоянии csDestroying


 
Чапаев ©   (2006-11-22 16:40) [3]

> [2] Anatoly Podgoretsky ©   (22.11.06 16:37)
И почему при этом BeforeClose обрабатывать не нужно? Вот это понять не могу.


 
Anatoly Podgoretsky ©   (2006-11-22 16:44) [4]


> Чапаев ©   (22.11.06 16:40) [3]

Потому что будет ошибка, компонент разрушается, а ты грязными лапами в нем копаешься.


 
novill ©   (2006-11-22 16:46) [5]

> [3] Чапаев ©   (22.11.06 16:40)

Стоит посмотреть, когда в процессе уничтожения компонента вызывается SetActive, может этого уже нельзя делать.


 
Чапаев ©   (2006-11-22 16:57) [6]

> [5] novill ©   (22.11.06 16:46)
В принципе, в OnDestroy модуля данных вызывался Table.Close. А Table.BeforeClose не отрабатывал.



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

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

Наверх




Память: 0.48 MB
Время: 0.087 c
2-1164555764
ViktorZ
2006-11-26 18:42
2006.12.10
Update для 2-ух таблиц


2-1163583511
Stasmor
2006-11-15 12:38
2006.12.10
Почему код не работает на Win98, но чудесно работает в XP(RS232)


2-1164029291
Makhanev Alexander
2006-11-20 16:28
2006.12.10
Сравнивание объектов...


2-1164362418
Xmen
2006-11-24 13:00
2006.12.10
Форма поверх всех других приложений


2-1164362132
TIF
2006-11-24 12:55
2006.12.10
Глубокоуважаемый штрих код