Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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


Youta ©   (2006-07-19 15:26:00) 

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


_mik   (2006-07-20 19:37:00) [1]

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

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

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


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

Выслал.


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

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


Amoeba   (2006-07-20 10:54:00) [4]


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

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


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


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

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


tButton   (2006-07-20 08:23:00) [6]

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


youta   (2006-07-20 07:11:00) [7]

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


youta   (2006-07-20 07:07:00) [8]

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


youta   (2006-07-20 07:05:00) [9]

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


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

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

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] до кучи.


Amoeba   (2006-07-19 16:20:00) [11]


> Youta   (19.07.06 15:26)

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


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

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


Elen   (2006-07-19 15:41:00) [12]

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо