Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.09.03;
Скачать: CL | DM;

Вниз

Как расположить окно поверх другого, когда выполняется длинный пр   Найти похожие ветки 

 
Youta   (2006-07-19 15:26) [0]

Уважаемые мастера! Как расположить окно поверх другого, когда выполняется длинный процесс, чтобы на нем отображался прогрессбар с кнопкой отмена?


 
Elen ©   (2006-07-19 15:41) [1]

Для нужного в верх окна выставь StayonTop в Form.FormStyle


 
Amoeba ©   (2006-07-19 16:20) [2]


> Youta   (19.07.06 15:26)

Если не забуду, то завтра вышлю рабочую демку (есть в запасе) как раз на данный случай. Давай адрес.


> Elen ©   (19.07.06 15:41) [1]
> Для нужного в верх окна выставь StayonTop в Form.FormStyle

Это не поможет (кнопка отмены просто так работать не будет). Задача решается с использование доп. потока.


 
!_SM_!   (2006-07-19 18:39) [3]

Для кнопки отмена можно и без доп. потока

FStop: Boolean;
....
FStop:=False;
while True do begin
Form2.ProgressBar.Position:=Form2.ProgressBar.Position+1;
....
if FStop then Break;
Application.ProcessMessage;
end;


соответственно на нажатие кнопки "Отмена" присваевоем глоб. переменной Fstop:=True;
ну и Elen ©   (19.07.06 15:41) [1] до кучи.


 
youta   (2006-07-20 07:05) [4]

а как вызвать-то окно наверх???
Form.showmodal - не пойдет же:(


 
youta   (2006-07-20 07:07) [5]

ааа, просто show:)) спасибо всем!!!!!!!!


 
youta   (2006-07-20 07:11) [6]

теперь другая проблема   - кнопка Отмена не отображается


 
tButton ©   (2006-07-20 08:23) [7]

перерисуй окно после показывания


 
Плохиш ©   (2006-07-20 10:43) [8]


> youta   (20.07.06 07:05) [4]
> а как вызвать-то окно наверх???
> Form.showmodal - не пойдет же

1. Посылаешь себе сообщение
2. Делаешь ShowModal
3. В обработчике сообщения производишь требуемую обработку


 
Amoeba ©   (2006-07-20 10:54) [9]


> youta   (20.07.06 07:11) [6]
> теперь другая проблема   - кнопка Отмена не отображается

Повторяю свое предложение: сообщи адрес куда выслать готовый полностью рабочий пример кода, целиком соответствующий твоей задаче (все проблемы в нем давно уже были решены). Если не хочешь получить реальную и исчерпывающую помощь, то мучайся.


 
youta   (2006-07-20 11:36) [10]

Электронный адрес: k_tanyak@mail.ru


 
Amoeba ©   (2006-07-20 11:40) [11]

Выслал.


 
_mik ©   (2006-07-20 19:37) [12]

Да еще, если ты вдруг не знал об этом!

Обнавляй состояние прогресса записывай в какую нибудь глобальную переменную, а сам индикатор обновляй по таймуру!
Это сильно ускорит работу программы!

var fProgress: integer;
...
 inc(fProgress );
...
procedure TFmMain.InterfaseTimerTimer(Sender: TObject);
begin
  ProgressBar.Position:= fProgress;
end;



Страницы: 1 вся ветка

Текущий архив: 2006.09.03;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.06 c
15-1155231251
Мазут Береговой
2006-08-10 21:34
2006.09.03
Это хорошо, что Microsoft


2-1155276649
Yegorchic
2006-08-11 10:10
2006.09.03
Проблема с удалением папки


3-1151295175
Orkus
2006-06-26 08:12
2006.09.03
IB Perfomance Monitor


15-1155470090
Andy BitOff
2006-08-13 15:54
2006.09.03
День строителя!


2-1155477729
AlexanderMS
2006-08-13 18:02
2006.09.03
Изменение стандартных диалогов.