Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
14-1134921756
ArtemESC
2005-12-18 19:02
2006.01.15
ClrScr Turbo Pas a


14-1134748697
(CHALING 32)S K i N E R
2005-12-16 18:58
2006.01.15
Дам вам один совет!


2-1135535661
Kostafey
2005-12-25 21:34
2006.01.15
База данных XML


1-1134135702
TBeginner
2005-12-09 16:41
2006.01.15
TListView теряет первый символ


2-1135504189
bobbyDigital
2005-12-25 12:49
2006.01.15
Яркость контрастность





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский