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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.06.2010, 14:52   #1
Sanprof
Форумчанин
 
Аватар для Sanprof
 
Регистрация: 28.01.2008
Сообщений: 267
По умолчанию Зависание на application.CreateForm(TForm1, Form1);

Собственно проблема такая, что в потоке у меня создается форма (я ее в Design Time уже создал и убрал из dpr application.CreateForm(TForm1, Form1), чтобы при виполнении программы не занимала память, т.к. появляется она редко, только при необходимости), так вот в потоке на строчке application.CreateForm(TForm1, Form1); программа виснет наглухо, но при пошаговом выполнении (F8) она создается
Код:
   if FileExists(FPathSave + FArchvName) then
      begin
         application.CreateForm(TForm1, Form1);
       try
         Form1.ShowModal;
       except
         FreeAndNil(Form1);
       end;
         FreeAndNil(Form1);
Не забываем говорить спасибо за помощь - это ведь так приятно
Sanprof вне форума Ответить с цитированием
Старый 21.06.2010, 15:04   #2
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

А зачем блок try? И вообще какой тайный смысл в Form1.ShowModal;? Она изначально, когда создается невидима?
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 21.06.2010, 15:06   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
application.CreateForm(TForm1, Form1);
Замени на
Код:
 Form1:=TForm1.Create...
 ...
и так далее. Короче создавай ее собственным методом ее класса, а не через Application
Цитата:
Она изначально, когда создается невидима?
Плюс ко всему ото скорее всего именно там и косяк.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.06.2010, 15:08   #4
Sanprof
Форумчанин
 
Аватар для Sanprof
 
Регистрация: 28.01.2008
Сообщений: 267
По умолчанию

она создается только при определенном условии, на форме несколько кнопок по нажатию на них в поток возвращается определенное значение, форма уже не нужна (уничтожается), поток продолжает выполнение.
Цитата:
Сообщение от Utkin Посмотреть сообщение
Она изначально, когда создается невидима?
Код:
begin
  Application.Initialize;
  Application.CreateForm(TForm2, Form2);
//  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.
Цитата:
Сообщение от Stilet Посмотреть сообщение
Замени на
Код:
 Form1:=TForm1.Create...
 ...
и так далее. Короче создавай ее собственным методом ее класса
все равно на строчке Form1 := TForm1.Create(nil); виснет, зато при пошаговом выполнении все нормально создается.
Не забываем говорить спасибо за помощь - это ведь так приятно

Последний раз редактировалось Stilet; 21.06.2010 в 15:17.
Sanprof вне форума Ответить с цитированием
Старый 21.06.2010, 15:19   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Плюс ко всему ото скорее всего именно там и косяк.
Так похоже я тупанул. Уткин, дружище, ShowModal по барабану невидимость формы, она ее видимой сделает.
Цитата:
Sanprof
если есть возможность прикрепи в архиве сюда свой проект, посмотрим на это чудо.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.06.2010, 15:20   #6
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Сообщение от Sanprof Посмотреть сообщение
все равно на строчке Form1 := TForm1.Create(nil); виснет, зато при пошаговом выполнении все нормально создается.
Это-то как раз и неудивительно. Меня больше поражает что при пошаговом Form1 := TForm1.Create(nil); она создается...

Цитата:
Уткин, дружище, ShowModal по барабану невидимость формы, она ее видимой сделает.
Да, но при создании формы у меня тоже с ней косяки были... Представь, что она видиммая. Он ее создал - она появилась и тут он ей ShowModal приказывает... Лично я не знаю как бы Дельфи поступил, поэтому про видимость и уточняю (чтобы не гадать, а проверить).
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 21.06.2010 в 15:22.
Utkin вне форума Ответить с цитированием
Старый 21.06.2010, 15:21   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
она создается...
А чего она не будет создаваться?
Другое дело что автор для нее Parent не указывает, потому ей возможно негде отрисовываться.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.06.2010, 15:23   #8
wladmoscow
 
Регистрация: 22.01.2010
Сообщений: 3
По умолчанию

fsdfsfsdfsdfsdfsfsdfsfsdf

Проверка работы...

Удалите это!
wladmoscow вне форума Ответить с цитированием
Старый 21.06.2010, 15:23   #9
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А чего она не будет создаваться?
Другое дело что автор для нее Parent не указывает, потому ей возможно негде отрисовываться.
Об этом и речь, но ИМХО, здесь косяк не один....
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 21.06.2010, 15:24   #10
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Сообщение от wladmoscow Посмотреть сообщение
fsdfsfsdfsdfsdfsfsdfsfsdf

Проверка работы...

Удалите это!
Да удалите вот это - wladmoscow
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Form1.Caption + Form1.sTabSheet artemavd Общие вопросы Delphi 9 22.09.2009 15:55
TForm1 изменить размер gakuseix Компоненты Delphi 16 18.06.2009 19:02
как визывать Tform1 из Console andreibtzt Общие вопросы Delphi 2 28.04.2009 16:01
Что означает TForm1 = class(TForm)>/STRONG> metamfetamin Помощь студентам 6 11.11.2007 22:40
Form1.Hide и Form1.Show... Roof Общие вопросы Delphi 9 13.10.2007 13:33