Форум: "Основная";
Текущий архив: 2002.02.07;
Скачать: [xml.tar.bz2];
ВнизКак правильно создать и уничтожить форму Найти похожие ветки
← →
AndrewK (2002-01-23 09:54) [0]Добрый день.
Вопрос такой:
Хочу создать динамически форму, которую принудительно внедряю в панель.
Делаю это так.
public
...
frmCurrent : TForm;
procedure ShowForm (aOwner : TPanel);
procedure CloseForm;
...
end;
procedure TfrmMain.ShowForm (aOwner : TPanel);
begin
frmCurrent.Parent := aOwner;
frmCurrent.Show;
end;
procedure TfrmMain.CloseForm;
begin
frmCurrent.Close;
// !!!
// frmCurrent.Free;
// !!!
frmCurrent.Parent := nil;
end;
В коде по месту создания формы вызываю:
procedure TfrmMain.aNewForm(Sender: TObject);
begin
frmCurrent := TForm1.Create(Self);
ShowForm (pnlWork);
end;
procedure TfrmMain.aClose(Sender: TObject);
begin
CloseForm;
end;
Вопрос в следующем. Форма создается и помещается в панель. Там с ней можно работать. Когда я ее закрываю процедурой CloseForm, то возникают проблемы (закоментированные строки). Я не могу удалить созданную мной форму из памяти методом Free. Работает только Close. Насколько я понимаю Close не удаляет сам объект из памяти а только убирает форму с экрана.
Как мне правильно динамически создать форму, внедрить ее в часть экрана (для чего и использую панель), и правильно удалить и с экрана и из памяти компьютера? Может то что я описал делается как-нибудь по другому?
Заранее благодарен всем отликнувшимся.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.02.07;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.004 c