Форум: "Основная";
Текущий архив: 2006.09.03;
Скачать: [xml.tar.bz2];
ВнизКак расположить окно поверх другого, когда выполняется длинный пр Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.049 c