Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
15-1155237754
GanibalLector
2006-08-10 23:22
2006.09.03
Сайт(редактирование данных MySQL)


2-1155278166
MSVN
2006-08-11 10:36
2006.09.03
Список запущенных процессов


2-1155505701
LORD Gregory
2006-08-14 01:48
2006.09.03
Записи в БД


15-1155452450
БарЛог
2006-08-13 11:00
2006.09.03
Смеялся по потери пульса


1-1153387653
pasha_golub
2006-07-20 13:27
2006.09.03
Перенаправление stdout & stdin консольного приложения





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский