Несколько непонятных вопросов в MSE

Вопросы программирования и использования MSEide + MSEgui.

Модератор: Модераторы

Несколько непонятных вопросов в MSE

Сообщение Padre_Mortius » 29.05.2008 00:35:26

При попытке перенести проект на mse возникло несколько вопросов
1. Как правильно закрыть (уничтожить) дочернюю форму, которая создается в рантайме, чтобы ее можно было повторно создать?
Код: Выделить всё
begin
  with tmodule2fo.Create(Application) do
    Show;
end;


где
Код: Выделить всё
tparamUnitfo = class(tsubform)


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;
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Re: Несколько непонятных вопросов в MSE

Сообщение Attid » 29.05.2008 01:15:16

Padre_Mortius писал(а):1. Как правильно закрыть (уничтожить) дочернюю форму, которая создается в рантайме, чтобы ее можно было повторно создать?

также как и везде
Код: Выделить всё
tmodule2fo.free


Padre_Mortius писал(а):2. Как правильно работать с компонентом tfiledialog?

а как пробывал ? хотя можешь глянуть в компонент filenameedit который его и запускает по кнопке.
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Re: Несколько непонятных вопросов в MSE

Сообщение Padre_Mortius » 29.05.2008 13:53:52

2 Attid
Если мы используем
Код: Выделить всё
tmodule2fo.free
при закрытии формы tmodule2fo, то при повторном вызове окна получаем сообщение что форма была создана и повторно не будет создаваться. Т.е. форма не уничтожается.

А пример использования tfiledialog вроде нашел в конференции с Мартином.
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Re: Несколько непонятных вопросов в MSE

Сообщение Vadim » 29.05.2008 14:07:12

Padre_Mortius писал(а):tmodule2fo.free

А если попробовать вместо этого FreeAndNil(tmodule2fo)?
Возможно ругается из-за того, что там не NIL сидит. :)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Несколько непонятных вопросов в MSE

Сообщение Attid » 29.05.2008 15:40:08

Padre_Mortius писал(а):при закрытии формы tmodule2fo, то при повторном вызове окна получаем сообщение что форма была создана и повторно не будет создаваться. Т.е. форма не уничтожается.

:shock:

пойду погляжу, просто я обычно не присваю ничему модальные формы типа

Код: Выделить всё
  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;


память на месте, так что все освобождается, что-то там у тя другое
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Re: Несколько непонятных вопросов в MSE

Сообщение v-t-l » 30.05.2008 10:07:11

Как я понимаю, tmodule2fo - класс, а не переменная этого класса: tmodule2fo.free - ???.
v-t-l
энтузиаст
 
Сообщения: 733
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus


Вернуться в MSEide + MSEgui

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9

Рейтинг@Mail.ru