Вниз
Скачать: CL | DM;

Screen.Cursor не меняет вид курсора   Найти похожие ветки 

 
DelphiLexx ©   (2007-05-22 14:11) [0]

Ситуация такая. Есть Main форма с DBGridEh"ом в которую из ББ загружен список данный, при двойном клике по записи открывается диалоговая форма в которую тоже загружаются очень много данных из БД. При закрытии этой формы у пользователя спрашивается хочет ли он сохранить эти данные, в связи с этим вызывается или Rollback или Commit, которые могут выполняться очень долго. Получается то, что диалоговая форма закрывается, а RollBack или Commit все еще выполняется, пользователь думает что все OK"ей нажимает новое действие на Main форме и здесь выскакивает ошибка, поэтому я решил сделать так: в OnDestroy диалоговой формы я пишу:

 oldc := Application.MainForm.Cursor;
 Screen.Cursor := crHourGlass;
 Application.MainForm.Enabled := False;
 try
   {здесь выполняются долгие действия в том числе или
     RollBack или Commit}
 finally
   Application.MainForm.Enabled := True;
     Application.MainForm.Cursor := oldc;
 end;

Прикол в том, что курсор не меняется как с этим быть.


 
Johnmen ©   (2007-05-22 14:14) [1]


>  Получается то, что диалоговая форма закрывается, а RollBack
> или Commit все еще выполняется,

1. Надо сначала RollBack или Commit, а потом диалоговая форма закрывается.
2. После Screen.Cursor := crHourGlass; надо Application.ProcessMessages.


 
DelphiLexx ©   (2007-05-22 14:23) [2]


> надо Application.ProcessMessages

Application.ProcessMessages ставил не помагает.
> Надо сначала RollBack или Commit, а потом диалоговая форма
> закрывается.

Я не могу поменять т.к. исходник не мой я только наследуюсь от абстрактной формы, в которой RollBack и Commit находятся в OnDestroy


 
Johnmen ©   (2007-05-22 14:32) [3]


> в OnDestroy диалоговой формы я пишу: ...


> Я не могу поменять т.к. исходник ...

Как тебя понимать, Саид? (с)
:)


 
Anatoly Podgoretsky ©   (2007-05-22 14:46) [4]

Дурят голову нашему брату и притом многократно.


 
DelphiLexx ©   (2007-05-22 14:55) [5]


> Дурят голову нашему брату и притом многократно.

Изначально проект над котором я сейчас работаю, создавался не мной. В этом проекте есть несколько абстрактных форм, от которых происходит наследование в случае, например, создания нового справочника. Commit и Rollback заложены в абстрактной форме и что-либо в ней не разрешит мой начальник - разработчик данного проекта.


 
KSergey ©   (2007-05-23 14:21) [6]

> DelphiLexx ©   (22.05.07 14:55) [5]
> и что-либо в ней не разрешит мой начальник
> - разработчик данного проекта.

Тогда варианта два:
1) Найти в исходниках базовых форм ошибку и указать на нее, мотивируя этим необходимость изменения
2) Найти ошибку у себя, возможно - в неверном использовании базовых форм.



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.013 c
15-1183105429
sinus
2007-06-29 12:23
2007.07.29
Delphi >> C++


3-1177156545
RomanH
2007-04-21 15:55
2007.07.29
Сортировка в FibDataSet


1-1179649486
Kolan
2007-05-20 12:24
2007.07.29
Список(TList) методов. Как вызвать метод?


15-1183146313
IMHO
2007-06-29 23:45
2007.07.29
Посоветуйте сайт для любителей кино


2-1183092871
Novice
2007-06-29 08:54
2007.07.29
программа для работы с базой IB в длинной сети




   Наверх