Страница 1 из 1
Несколько непонятных вопросов в MSE
Добавлено: 29.05.2008 00:53:05
Padre_Mortius
При попытке перенести проект на mse возникло несколько вопросов
1. Как правильно закрыть (уничтожить) дочернюю форму, которая создается в рантайме, чтобы ее можно было повторно создать?
Код: Выделить всё
begin
with tmodule2fo.Create(Application) do
Show;
end;
где
2. Как правильно работать с компонентом tfiledialog?
Добавлено спустя 17 минут 39 секунд:с первым вопросом вроде бы разобрался благодаря проекту debi12345 persons
Код: Выделить всё
try
Application.CreateForm(tparamUnitfo, paramUnitfo);
if paramUnitfo.show(true) = mr_windowclosed then
begin
end;
finally
ParamUnitfo.Free
end;
end;
Re: Несколько непонятных вопросов в MSE
Добавлено: 29.05.2008 01:15:16
Attid
Padre_Mortius писал(а):1. Как правильно закрыть (уничтожить) дочернюю форму, которая создается в рантайме, чтобы ее можно было повторно создать?
также как и везде
Padre_Mortius писал(а):2. Как правильно работать с компонентом tfiledialog?
а как пробывал ? хотя можешь глянуть в компонент filenameedit который его и запускает по кнопке.
Re: Несколько непонятных вопросов в MSE
Добавлено: 29.05.2008 13:53:52
Padre_Mortius
2 AttidЕсли мы используем
при закрытии формы tmodule2fo, то при повторном вызове окна получаем сообщение что форма была создана и повторно не будет создаваться. Т.е. форма не уничтожается.
А пример использования tfiledialog вроде нашел в конференции с Мартином.
Re: Несколько непонятных вопросов в MSE
Добавлено: 29.05.2008 14:07:12
Vadim
Padre_Mortius писал(а):tmodule2fo.free
А если попробовать вместо этого FreeAndNil(tmodule2fo)?
Возможно ругается из-за того, что там не NIL сидит.

Re: Несколько непонятных вопросов в MSE
Добавлено: 29.05.2008 15:51:15
Attid
Padre_Mortius писал(а):при закрытии формы tmodule2fo, то при повторном вызове окна получаем сообщение что форма была создана и повторно не будет создаваться. Т.е. форма не уничтожается.
пойду погляжу, просто я обычно не присваю ничему модальные формы типа
Код: Выделить всё
with TfmseCardInfofo.Create(nil) do
try
qci.params[0].AsString := CardCode;
qci.open;
if Show(True) = mr_Ok then
begin
qci.applyupdate;
end;
finally
Free;
end;
код как-бы выполняется много много раз в день, никто не жаловался на память. сейчас замерю в тестовом примере.
Добавлено спустя 11 минут 7 секунд:прогнал
Код: Выделить всё
for vNum := 0 to 500 do
with tmainfo.create(self) do
try
show;
sleep(1000);
finally
free;
end;
память на месте, так что все освобождается, что-то там у тя другое
Re: Несколько непонятных вопросов в MSE
Добавлено: 30.05.2008 10:07:11
v-t-l
Как я понимаю, tmodule2fo - класс, а не переменная этого класса: tmodule2fo.free - ???.