Форум: "Начинающим";
Текущий архив: 2006.01.15;
Скачать: [xml.tar.bz2];
ВнизВыполнение обработке в одной форме, а показ прогресса в другой. Найти похожие ветки
← →
_Lucifer_ © (2005-12-26 13:16) [0]У меня есть две формы. В первой выполняется обработка. На время выполнения обработки форма скрывается. Чтоб не доводить пользователя до обморочного состояния я хочу вывести вторую форму, в которой будет бежать прогресс выполнения обработки.
Интересует вопрос как показать форму2 при этом изменяя прогресс из скрытой формы1?
Самый простой, очевидный и не подходящий вариант решения это поместить обработку во второю форму, но это черевато серьёзными последствиями (много кода и при переносе получу комплект таких ошибок, что лучше и не пытаться).
← →
Digitman © (2005-12-26 13:37) [1]
> как показать форму2
форма2.Show[Modal]
> изменяя прогресс
форма2.прогресс.Позиция := ..
← →
_Lucifer_ © (2005-12-26 13:45) [2]Digitman © (26.12.05 13:37) [1]
Пытался упростить до минимума, но ...
Как показать форму я знаю и прекрасно её показываю. Изменять прогресс в самой форме тоже не проблема. Проблема из формы 1 показать форму 2 и продолжить обработку в форме 1.
Вы выразите, что конкретно вам не понятно буду уточнять.
← →
Digitman © (2005-12-26 13:49) [3]
> конкретно вам не понятно
мне непонятно, в чем конкретно у тебя проблема.
← →
_Lucifer_ © (2005-12-26 13:59) [4]Есть форма, в которой происходит обработка (довольно утомительный процесс, в течении которого пользователю в голову лезут не правильные мысли). Дабы уберечься от дурака (то бишь пользователя) я скрываю форму. Но этого мало - этому пользователю надо ещё и пояснить, что форма скрыта, а не с программой проблемы. Для этого я показываю ещё одну форму с прогрессом. Но я не знаю как управлять из скрытой формы объектами на форме, которую я показал (форма №2). Поэтому я хочу узнать есть ли способ, не прерывая выполнения обработки в первой форме, показать вторую форму и из первой формы управлять второй формой? Просто меня слабо радует перспектива переноса кода и я хочу этой перспективы избежать.
← →
Digitman © (2005-12-26 14:03) [5]
> _Lucifer_ © (26.12.05 13:59) [4]
> я не знаю как управлять из скрытой формы
точно так же как из НЕскрытой
абсолютно никакой разницы
в коде любого метода формы1 (хоть скрыта она хоть не скрыта) :
Форма2.Объект_этой_формы.Метод/свойство_этого_объекта
← →
kkot (2005-12-26 14:16) [6]_Lucifer_ © (26.12.05 13:59) [4]
Попробуй показывать вторую форму модально, не скрывая первой. А у второй BorderStyle установи в bsNone, и самостоятельно создавай и разрушай ее, когда это потребуется, а потом см. [5]
← →
_Lucifer_ © (2005-12-26 14:33) [7]Digitman © (26.12.05 14:03) [5]
Уже пробовал. После показа формы 2 никакие действия не выполнялись до тех пор, пока я не закрывал форму 2. Только после этого выполнялись все операции. Может я что не так делаю? Вот только не пойму, что именно.
Если никаких идей нет, то придётся производить перенос.
← →
Digitman © (2005-12-26 14:47) [8]
> Вот только не пойму, что именно
А что, собственно, ты делаешь ?
Так сложно продемонстрировать в коде свои эксперименты ?
← →
_Lucifer_ © (2005-12-26 14:54) [9]
with TForm2.Create(nil) do begin
try
Showmodal;
for i:=1 to n do begin
{тут у нас код обработки}
Gauge1.Possition:=i;
end;
finally
Free;
end;
end;
← →
Gydvin © (2005-12-26 14:55) [10]А если
Form1.enable:=false;
form2.show;
..... бла бла бла
form2.progress.position:=x;
..... бла бла бла
form2.hide
formm1.enable:=true;
← →
sniknik © (2005-12-26 14:57) [11]_Lucifer_ © (26.12.05 14:54) [9]
> Showmodal;
а теперь посмотри > Digitman © (26.12.05 13:37) [1] сравни
← →
Digitman © (2005-12-26 15:00) [12]with TForm2.Create(nil) do begin
try
Showmodal;
for i:=1 to n do begin
{тут у нас код обработки}
Gauge1.Possition:=i;
Gauge1.Update; //или, на худой конец, Application.Processmessages;
end;
finally
Free;
end;
end;
← →
sniknik © (2005-12-26 15:08) [13]Digitman © (26.12.05 15:00) [12]
не поможет, модальный вызов формы блокирует дальнейший код.
← →
Digitman © (2005-12-26 15:21) [14]
> sniknik © (26.12.05 15:08) [13]
угу ..на модальность я не обратил внимания...
видимо, у автора как раз в этом и загвоздка
← →
dr D (2005-12-26 15:51) [15]СПАСИБО! После того как избавился от Showmodal; заработало как часы. Ещё раз спасибо.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.01.15;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.012 c