![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Screen.Cursor не меняет вид курсора
DelphiLexx © (2007-05-22 14:11:00)Ситуация такая. Есть 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;
Прикол в том, что курсор не меняется как с этим быть.
KSergey (2007-05-23 14:21:00) [1]> DelphiLexx © (22.05.07 14:55) [5]
> и что-либо в ней не разрешит мой начальник
> - разработчик данного проекта.
Тогда варианта два:
1) Найти в исходниках базовых форм ошибку и указать на нее, мотивируя этим необходимость изменения
2) Найти ошибку у себя, возможно - в неверном использовании базовых форм.
DelphiLexx (2007-05-22 14:55:00) [2]
> Дурят голову нашему брату и притом многократно.
Изначально проект над котором я сейчас работаю, создавался не мной. В этом проекте есть несколько абстрактных форм, от которых происходит наследование в случае, например, создания нового справочника. Commit и Rollback заложены в абстрактной форме и что-либо в ней не разрешит мой начальник - разработчик данного проекта.
Anatoly Podgoretsky (2007-05-22 14:46:00) [3]Дурят голову нашему брату и притом многократно.
Johnmen (2007-05-22 14:32:00) [4]
> в OnDestroy диалоговой формы я пишу: ...
> Я не могу поменять т.к. исходник ...
Как тебя понимать, Саид? (с)
:)
DelphiLexx (2007-05-22 14:23:00) [5]
> надо Application.ProcessMessages
Application.ProcessMessages ставил не помагает.
> Надо сначала RollBack или Commit, а потом диалоговая форма
> закрывается.
Я не могу поменять т.к. исходник не мой я только наследуюсь от абстрактной формы, в которой RollBack и Commit находятся в OnDestroy
Johnmen (2007-05-22 14:14:00) [6]
> Получается то, что диалоговая форма закрывается, а RollBack
> или Commit все еще выполняется,
1. Надо сначала RollBack или Commit, а потом диалоговая форма закрывается.
2. После Screen.Cursor := crHourGlass; надо Application.ProcessMessages.