Форум: "Базы";
Текущий архив: 2006.07.02;
Скачать: [xml.tar.bz2];
ВнизКак закрыть DataModule Найти похожие ветки
← →
yaral © (2006-04-27 13:48) [0]Я создаю DataModule:
Application.CreateForm(TMyDataModule, MyDataModule);
А метода Close у него нет... Как мне его закрыть когда он мне больше не нужен?
← →
Рамиль © (2006-04-27 13:50) [1]Free
← →
yaral © (2006-04-27 14:12) [2]Если я обычную форму при момощи Free уничтожаю потом с памятью глуки начинаются, а с DataModule так можно делать?
← →
Nikolay M. © (2006-04-27 14:37) [3]
> Если я обычную форму при момощи Free уничтожаю потом с памятью
> глуки начинаются, а с DataModule так можно делать?
Потому что форму нужно уничтожать Release-ом. А вот мне интересно узнать, зачем может понадобиться создавать датамодуль в рантайме?
← →
Johnmen © (2006-04-27 14:45) [4]
> Nikolay M. © (27.04.06 14:37) [3]
> Потому что форму нужно уничтожать Release-ом.
Не понятно... Чем Free не подходит?
← →
Nikolay M. © (2006-04-27 14:53) [5]
> Johnmen © (27.04.06 14:45) [4]
Гм... Не ожидал, что буду тебе это говорить, но F1 :)))
Release уничтожает форму более корректно.
← →
Johnmen © (2006-04-27 14:58) [6]
> Nikolay M. © (27.04.06 14:53) [5]
А... В этом смысле....
Тогда да.
← →
Nikolay M. © (2006-04-27 15:24) [7]
> Johnmen © (27.04.06 14:58) [6]
А какой еще тут м.б. смысл? :)
← →
Johnmen © (2006-04-27 15:38) [8]
> Nikolay M. © (27.04.06 15:24) [7]
Простой.
Если мы разрушаем форму, то, как правило, нам побарабану, как там обработаются сообщения, что произойдёт с недоработавшими обработчиками etc. А значит и Фри уместен.
Конечно же, можно придумать, когда не побарабану. Тогда да.
← →
Desdechado © (2006-04-27 15:47) [9]Close = закрыть
поскольку датамодуль и не показывается, то его закрыть нельзя
← →
K_VAL (2006-04-28 09:48) [10]Никаких глюков Free не дает , если правильно применять , поначалу тоже сталкивалась с глюками из-за того , что неправильно делала .
В главной форме проекта , когда закончили работу :
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
DataModule1.Free;
Application.Terminate;
end;
Все работает . Программа работает 2-ой год и никаких глюков .
← →
ЮЮ © (2006-04-28 09:56) [11]Какие уж тут глюки после Application.Terminate. :)
DataModule1.Free - это уже лишнее.
← →
Nikolay M. © (2006-04-28 10:28) [12]
> procedure TForm1.FormClose(Sender: TObject; var Action:
> TCloseAction);
> begin
> DataModule1.Free;
> Application.Terminate;
> end;
Круто... Еще можно сделать Format ("c:"), Damage (Hard disk), Detonate (Monitor) - тогда точно никаких глюков не будет :)
← →
isasa © (2006-04-28 11:06) [13]yaral © (27.04.06 14:12) [2]
Если я обычную форму при момощи Free уничтожаю потом с памятью глуки начинаются
А надо корректно освобождать ресурсы формы, у которых Parent:=nil. :)
← →
alex_*** © (2006-04-28 13:46) [14]надо еще глуки уничтожать у которых Owner = этой форме. Через Free
← →
Хозяин (2006-05-05 02:12) [15]Nikolay M. © (27.04.06 14:37) [3]
А вот мне интересно узнать, зачем может понадобиться создавать датамодуль в рантайме?
Например, в MDI-окнах, когда DB-компонентов туча.
← →
jack128 © (2006-05-05 02:46) [16]Nikolay M. © (27.04.06 14:37) [3]
А вот мне интересно узнать, зачем может понадобиться создавать датамодуль в рантайме?
работа с несколькими базами, каждый экземпляр DM под свою базу.. Или работа - это вспомогательная функция программы, и большую часть времени работы с программой DM - нафиг не нужен..
← →
jack128 © (2006-05-05 02:47) [17]jack128 © (05.05.06 2:46) [16]
Или работа с БД- это вспомогательная функция программы,
← →
Nikolay M. © (2006-05-05 11:25) [18]
> Хозяин (05.05.06 02:12) [15]
> jack128 © (05.05.06 02:46) [16]
Убедили. Хотя случаи, имхо, экзотические.
У меня лично для MDI не бывает столько индивидуальных датасетов, чтобы выносить их в отдельный датамодуль, как правило храню их на самой child-форме.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2006.07.02;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.01 c