Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.07.2010, 19:46   #1
Михаил Юрьевич
Форумчанин
 
Аватар для Михаил Юрьевич
 
Регистрация: 25.12.2007
Сообщений: 655
По умолчанию Окно загрузки

Подскажите почему форма Form2 мертвая,на ней не работает не Timer , не ProgressBar
Вообщем на форме Form2 хотел разместить или Gif рисунок, или ProgressBar. Что бы если файл большой грузится
то была бы заставка, заставка появляется ,а вот ни Gif рисунок, ни ProgressBar не работают.
Можно конечно запустить в отдельном потоке, но не понятно почему не работает?

Все это пишу в OnShow



PHP код:
if (ParamCount 0) and FileExists(ParamStr(1)) then  begin 

 Form2
:= TForm2.Create(Application);
    
Form2.Show;
    
Form2.Update;
rxRichEdit1.Lines.LoadFromFile(ParamStr(1));
   
Form2.Close;
 
Form2.Free;//
end
За частые поиски был забанен во всех известных
поисковых системах!
Михаил Юрьевич вне форума Ответить с цитированием
Старый 11.07.2010, 19:52   #2
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Сделайте
Код:
Form2.Parent:=self;
Если не ошибаюсь
Да и вообще лучше не делайте динамические формы, создавайте их нормально.
Если они не нужны при запуске приложения, то просто в событии OnCreate Form1 поставьте
Код:
Form2.Enabled:=False;
Form2.Visible:=False;
А когда понадобится, пишите
Код:
Form2.Enabled:=True;
Form2.Visible:=True;

Последний раз редактировалось _-Re@l-_; 11.07.2010 в 19:55.
_-Re@l-_ вне форума Ответить с цитированием
Старый 11.07.2010, 20:44   #3
Михаил Юрьевич
Форумчанин
 
Аватар для Михаил Юрьевич
 
Регистрация: 25.12.2007
Сообщений: 655
По умолчанию

Спасибо за совет по формам, а Parent:=self; ни чего не изменил...
За частые поиски был забанен во всех известных
поисковых системах!
Михаил Юрьевич вне форума Ответить с цитированием
Старый 11.07.2010, 21:22   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Можно конечно запустить в отдельном потоке, но не понятно почему не работает?
в данном случае нужно.
ибо пока файл не загрузится поток занят не обрабатывает сообщений.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 14.07.2010, 19:57   #5
Михаил Юрьевич
Форумчанин
 
Аватар для Михаил Юрьевич
 
Регистрация: 25.12.2007
Сообщений: 655
По умолчанию

Цитата:
Сообщение от _-Re@l-_ Посмотреть сообщение
Сделайте
Код:
Form2.Parent:=self;
Если не ошибаюсь
Да и вообще лучше не делайте динамические формы, создавайте их нормально.
Если они не нужны при запуске приложения, то просто в событии OnCreate Form1 поставьте
Код:
Form2.Enabled:=False;
Form2.Visible:=False;
А когда понадобится, пишите
Код:
Form2.Enabled:=True;
Form2.Visible:=True;
Подскажите почему динамические формы лучше не делать?
За частые поиски был забанен во всех известных
поисковых системах!
Михаил Юрьевич вне форума Ответить с цитированием
Старый 14.07.2010, 20:18   #6
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Меня тоже интересует вопрос почему лучше не делать динамических форм? Ибо что если я напишу form = TForm.Create() сгенерируется не корректный код в отличии, если бы это же написала среда разработки? ерунда разумеется, советовать лучше использовать динамические формы там где это не обходимо.

Edit:
Цитата:
А вместо Form2.Visible:=True; лучше ставить Form2.Show;
Вот вы пишите, это ваше мнение. Так объясните людям почему лучше? вы для интереса откройте код TForm.Show (Ctrl+Click) вот думаю вы удивитесь

p.s. я чего это все пишу, просто тут много новичков, и не правильно по моему, писать и советовать то, что ничем не подкреплено кроме вашей уверенности в собственном суждении.

Последний раз редактировалось BOBAH13; 14.07.2010 в 20:32.
BOBAH13 вне форума Ответить с цитированием
Старый 14.07.2010, 20:21   #7
ex.cluz
Участник клуба
 
Аватар для ex.cluz
 
Регистрация: 15.01.2010
Сообщений: 1,325
По умолчанию

Цитата:
Сообщение от _-Re@l-_ Посмотреть сообщение
Код:
Form2.Enabled:=False;
Form2.Visible:=False;
А когда понадобится, пишите
Код:
Form2.Enabled:=True;
Form2.Visible:=True;
А зачем свойство Enabled править? По-моему, совсем не нужно.
А вместо Form2.Visible:=True; лучше ставить Form2.Show;
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "
[ПРОграммист]"
Yan's Home Digital Lab
ex.cluz вне форума Ответить с цитированием
Старый 14.07.2010, 20:33   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Да и вообще лучше не делайте динамические формы, создавайте их нормально.
а нормально это как?))
учитывая что всеравно TForm1.Create(Application); выполняется в Application.CreateForm(TForm1,Form1 );
Цитата:
Если они не нужны при запуске приложения, то просто в событии OnCreate Form1 поставьте
Form2.Enabled:=False;
Form2.Visible:=False;
и получим AV.
ибо когда создается первая форма, второй еще не будет.

лучше уж динамическое создание чем пляски с бубном.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[?] Послать клавишу в чужое окно, не выводя окно на передний план. Moriarty Win Api 4 21.02.2011 05:11
webbrowser и окно загрузки blackstersl Работа с сетью в Delphi 0 30.10.2008 08:57
«Окно+символ». Создать класс, представляющий окно в текстовом режиме. RustreX Паскаль, Turbo Pascal, PascalABC.NET 1 11.11.2007 19:28