| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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(); ? |
| Автор: 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 |
| дык ;) регистрируйся, тут много вкусного. |