Главная страница
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.055 c
6-1144821895
DelphiN!
2006-04-12 10:04
2006.09.03
Размер сетевого TCP/IP пакета


3-1151188021
wardoc
2006-06-25 02:27
2006.09.03
транзакции в распределенной БД


3-1150957711
galexis
2006-06-22 10:28
2006.09.03
Медленно работает LIKE


2-1155559067
XTD
2006-08-14 16:37
2006.09.03
Отправка E-Mail a Indy


2-1155698844
California
2006-08-16 07:27
2006.09.03
Что такое XPManifest ?