Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Прорисовка формы


Автор: hastot 18.10.2004, 00:44
Я пишу программку где должно быть следующее

procedure TMainForm.Button2Click(Sender: TObject);
begin

form1.show;
ServiceStop (' ','Имя сервиса'); - останавливает сервис в NT
form1.hide;

end;

На form1 - у меня стоит label1. И когда я кликаю по кнопке форма form1 у меня выресовывается не полностью т.е. Форма выводится, только без верхней полосы и без кнопок закрыть? просто серый квадрат. И label не выводится на ней. Вообщем она как бы не успевает прорисоватся, процессор занят остановкой сервиса(ServiceStop). А если, скажем добовляю showmessage все прекрасно выходит вон например:

procedure TMainForm.Button2Click(Sender: TObject);
begin

form1.show;
showmessage (' ');
ServiceStop (' ','Имя сервиса'); - останавливает сервис в NT
form1.hide;

end;

Че делать?

Автор: sniron 18.10.2004, 00:49
Т.е. на скоко я тебя понял, тебе надо вывести новую форму на экран до вызова функции ServiceStop? Может вместо showmessage попробовать sleep(); ? :notify

Автор: hastot 18.10.2004, 00:51
sniron, Да ты правильно понял. На счет sleep - пробовал, не помогает!

Автор: Medved 18.10.2004, 02:30
Как один из вариантов - поставь на форму таймер. Установи интервал в значение 1, при отркытии формы запускай его (Enabled := true), а в обработчик таймера запиши свой код (ServiceStop (' ','Имя сервиса'); - останавливает сервис в NT). Будет работать на 100%, хотя реализация и не самая лучшая.

Автор: Alex 18.10.2004, 06:58
В ServiceStop в его while часть попробуй вставить Application.ProcessMessages;

Автор: x77 18.10.2004, 09:47
не надо этого ничего, просто после Form1.Show; напиши Form1.Update;

Автор: hastot 18.10.2004, 20:55
x77, все работает спасибо!

Автор: x77 18.10.2004, 21:13
дык ;)

регистрируйся, тут много вкусного.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)