Текущий архив: 2003.06.16;
Скачать: CL | DM;
Внизпрогрес окно Найти похожие ветки
← →
FANTASY (2003-06-03 01:37) [0]есть функция которая будет относительно долго исполнатся
я решил добавть в проэкт еше одну форму с надписью "Wait !"
и при сттарте функции запускать на обозрение эту форму а после обработки спрятать гдето так
procedure TForm1.Button1Click(Sender: TObject);
begin
StartShow;
//
//
//
EndShow;
end;
только не получается.Форма которая показывает сообшение не успевает прорисоватся. а ShowModal вобше стопорит основную процедуру(ждет закрытие формы). А не плохо былобы использовать такой пием в процедурах и функциях требующих много времени на выполнение.
ПОСКАЖИТЕ ПРАВИЛЬНОЕ РЕШЕНИЕ как правильно прописать StartShow;EndShow; чтобы фома "Wait !" при вызове StartShow; успела прорисоватся.
← →
Нуу (2003-06-03 02:49) [1]ShowModal, Вы правы - не годится. А чтобы "успела прорисоваться", тут так - внутри одной процедуры Вы можете отображать различные состояния данной формы либо явно вызывая процедуры ее отрисовки, либо позволяя системе обрабатывать сообщения о ее отрисовке.
← →
Andrey V. (2003-06-03 06:08) [2]Show
и
Application.ProcessMessages;
← →
OlDemon (2003-06-03 06:31) [3]А зачем использовать форму? ИМХО достаточно нарисовать панель. А для прорисовки можно использовать метод Update.
← →
AbrosimovA (2003-06-03 08:34) [4]Примерно так:
procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.Hide;//Лучше скрыть основную форму
StartShow;
........//Длительный процесс
EndShow;
end;
procedure TForm1.StartShow;
begin
MessageForm.Caption:="Чтение данных из файла";//Заголовок формы
MessageForm.Show;
MessageForm.Update;//Для прорисовки окна
end;
procedure TForm1.EndShow;
begin
MessageForm.Hide;
Form1.FormStyle:=fsStayOnTop;//Отобразить поверх всех
Form1.Show;
end;
← →
Fantasy (2003-06-04 00:44) [5]большое спосибо !
Страницы: 1 вся ветка
Текущий архив: 2003.06.16;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.006 c