Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> Перезагрузка формы 
:(
    Опции темы
Illusion Dolphin
Дата 29.8.2003, 09:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1198
Регистрация: 3.5.2003

Репутация: 36
Всего: 63



Подскажите, пожалуйста, как правильно в runtime какую-либо форму, созданную при загрузке, разрушить и сразу же загрузить обратно? Я пробовал вариант :

if form1<>nil then form1.release;
form1:=nil; //на всякий случай, можно без
Application.ProcessMessages; //можно и без этого, но глюки лезут
Application.CreateForm(TForm1, Form1);

но что-то тут не то...


--------------------
В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен.
Шифрование и организация фотографий - Photo Database 4.5
PM MAIL WWW ICQ   Вверх
p0s0l
Дата 29.8.2003, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 58
Всего: 112



а что не то ? не работает ? может надо использовать free, а не release ?
можно так:
FreeAndNil(form1);
Application.ProcessMessages; //можно и без этого, но глюки лезут
Application.CreateForm(TForm1, Form1);



--------------------
С уважением, г-н Посол.
PM   Вверх
altarasjuk
Дата 30.8.2003, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 7.5.2003
Где: Харьков

Репутация: 1
Всего: 1



вообще если это не основная форма, то почему бы и не так:
form1.Free;
form1:= TForm1.Create(aOwner);

где aOwner - основная форма или какая-либо другая, от которой зависит эта.


--------------------
Правда - изобретение маньяков: колет глаза и режет уши.
PM MAIL ICQ   Вверх
Illusion Dolphin
Дата 30.8.2003, 20:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1198
Регистрация: 3.5.2003

Репутация: 36
Всего: 63



Спасибо, первый метод (который я предлагал на рассмотрение) работает, просто забыл, что при этом не выгружаются глобальные объекти типа симофоров....
altarasjuk'у: А то, что вы предложили делать нельзя, надо использовать метод release, т.к. он сперва закрывает все хэндлы, связаные с формой, а потом её разрушает - в справочнике по winApi написано...

[Тема закрыта]


--------------------
В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен.
Шифрование и организация фотографий - Photo Database 4.5
PM MAIL WWW ICQ   Вверх
Akella
Дата 31.8.2003, 22:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Не закрыта
Во всех своих приложениях я использую Form1.Free и все работает без глюков и без ошибок
А для чего тогда метод Free придумали? Я думаю разработчики Delphi не дураки и просто так не бывает ничего (Ломоносов доказал)
PM MAIL   Вверх
altarasjuk
Дата 1.9.2003, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 7.5.2003
Где: Харьков

Репутация: 1
Всего: 1



Цитата
Я думаю разработчики Delphi не дураки
Сомневаюсь smile.gif


--------------------
Правда - изобретение маньяков: колет глаза и режет уши.
PM MAIL ICQ   Вверх
beif
Дата 1.9.2003, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 25.8.2003
Где: Россия, Кемерово

Репутация: нет
Всего: 1



altarasjuk ты сомневаешься в том что они не дураки, или в том, чтоdsergey так думает? smile.gif
PM MAIL WWW ICQ   Вверх
p0s0l
Дата 1.9.2003, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 58
Всего: 112



Цитата
Warning: Never explicitly free a component within one of its own event handlers or the event handler of a component it owns or contains. For example, don’t free a button, or the form that owns the button, in its OnClick event handler.

To free a form, call its Release method, which destroys the form and releases the memory allocated for it after all its event handlers and those of the components it contains are through executing.




--------------------
С уважением, г-н Посол.
PM   Вверх
Akella
Дата 1.9.2003, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Я так понимаю, что не вызывайте метод Free для Button1 в событии OnClick кнопки Button1, т.е. так не рекомендуется:

Код
Procedure Form1.Button1Click(Sender: TObject);
Begin
 Button1.Free;
End;



Но можно делать так:
Код
Procedure Form1.Button2Click(Sender: TObject);
Begin
 Button1.Free;
End;


PM MAIL   Вверх
altarasjuk
Дата 1.9.2003, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 7.5.2003
Где: Харьков

Репутация: 1
Всего: 1



Цитата
altarasjuk ты сомневаешься в том что они не дураки, или в том, чтоdsergey так думает? 
в том что они не дураки smile.gif


--------------------
Правда - изобретение маньяков: колет глаза и режет уши.
PM MAIL ICQ   Вверх
Akella
  Дата 1.9.2003, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



В книге В.В. Фараонова Delphi 5 Руководство программиста я вычитал такой пример добавления записи в БД (www.knowledge.ru):

Код
procedure TfmMain.tbAddClick(Sender: TObject);
begin
 with dm, Phone do begin
    Append;
    fmEdit:=TfmEdit.Create(self);
    if fmEdit.Showmodal=mrOK then
     begin
       Post;
     end else
     begin
       Cancel;
      end;
      fmEdit.Free;
  end;//with
end;

baaa.gif

Это сообщение отредактировал(а) dsergey - 1.9.2003, 20:13
PM MAIL   Вверх
Illusion Dolphin
Дата 1.9.2003, 20:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1198
Регистрация: 3.5.2003

Репутация: 36
Всего: 63



Цитата
В книге В.В. Фараонова Delphi 5


Фараонов явно не читал хэпла по WinAPI smile.gif...


--------------------
В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен.
Шифрование и организация фотографий - Photo Database 4.5
PM MAIL WWW ICQ   Вверх
Medved
Дата 2.9.2003, 07:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

Репутация: 14
Всего: 154



Тема закрыта. Много флейма.


--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
  
Закрытая темаСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0934 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.