Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.15;
Скачать: CL | DM;

Вниз

Выполнение обработке в одной форме, а показ прогресса в другой.   Найти похожие ветки 

 
_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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.058 c
14-1134976420
LexxX
2005-12-19 10:13
2006.01.15
Получени IP-адреса в SQL-скрипте


1-1134469050
Leonid
2005-12-13 13:17
2006.01.15
Редактирование отчёта в FastReport


3-1132633101
BAckToOfiice
2005-11-22 07:18
2006.01.15
Помогите. Как слконировать таблицу?


2-1135717341
Freezz
2005-12-28 00:02
2006.01.15
работа с записями


6-1127662057
Orange
2005-09-25 19:27
2006.01.15
Как работает SSL в InDy?