-
tippa © (31.03.10 23:06) [0]использую функцию InputBox из модуля KOLInputQuery.pas. Она показывает диалоговое окно. Если закрыть это окно крестиком вверху то программа зависает. Как бы это дело поправить?
------------------------------------------------------------------------
P.S. Заменил кодwhile IsWindow( DlgWnd ) and (Dialog.ModalResult = 0) do Dialog.ProcessMessage;
наwhile IsWindow( DlgWnd ) and (Dialog.ModalResult = 0) do
begin
Dialog.ProcessMessage;
sleep(1);
end;
иначе во время показа диалогового окна процессор грузит по полной. -
tippa © (31.03.10 23:43) [1]вообщем убрал этот крестик:Dialog.Style := Dialog.Style and not (WS_MINIMIZEBOX or WS_MAXIMIZEBOX or WS_SYSMENU);
-
Не нашел, чей модуль, но вот вопрос у меня сразу возник: а вы сами Applet в проекте используете, или у вас только форма без апплета?
-
Точно, как я и подумал: при наличии Applet'а процессор не грузится, и нажатие на крестик все нормально при завершении не падает. Это очень необходимо, чтобы не было апплета?
-
tippa © (01.04.10 19:01) [4]Эмм... а как узнать, есть аплет или нет? Я думал это что-то абстрактное и присутствующее в любой программе). У меня обычный MCK проект. Еще заметил, что для этого глюка нужны 2 условия:
- включена замена системных модулей (Delphi5)
- функцию InputBox вызываем в обработчике OnBeforeCreateWindow
иначе все хорошо.
P.S. это я так защиту паролем делаю -
TKOLApplet бросается на главную форму. Если Applet'а нет, его функции частично берет на себя форма. Читайте мануалы, комментарии по Applet в KOL.pas. Глюк проявляется и без замены, достаточно в событии OnClick кнопки вызвать InputQuery и закрыть крестиком, после завершения программы. В случае Applet'а глюка нет.
-
I will put the charq file on my website in a few hours and post a link here. It is not strictly necessary.