Главная страница
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.47 MB
Время: 0.033 c
15-1164103554
Nic (from first work)
2006-11-21 13:05
2006.12.10
Не могу найти песню


1-1161853464
DelphiLexx
2006-10-26 13:04
2006.12.10
Как избежать сбоев RxGifAnimator


15-1164004463
pssst
2006-11-20 09:34
2006.12.10
win 2003


3-1159512584
vodvorezlaya
2006-09-29 10:49
2006.12.10
Трёхмерные таблицы


15-1163785390
[_]
2006-11-17 20:43
2006.12.10
Шифрование открыто-закрытым ключом.