Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как закрыть DataModule [D7, MSSQL]


yaral ©   (2006-04-27 13:48:00) 

Я создаю DataModule:
Application.CreateForm(TMyDataModule, MyDataModule);
А метода Close у него нет... Как мне его закрыть когда он мне больше не нужен?


Nikolay M.   (2006-05-05 11:25:00) [1]


> Хозяин   (05.05.06 02:12) [15]
> jack128 ©   (05.05.06 02:46) [16]


Убедили. Хотя случаи, имхо, экзотические.
У меня лично для MDI не бывает столько индивидуальных датасетов, чтобы выносить их в отдельный датамодуль, как правило храню их на самой child-форме.


jack128   (2006-05-05 02:47:00) [2]

jack128 ©   (05.05.06 2:46) [16]
Или работа с БД- это вспомогательная функция программы,


jack128   (2006-05-05 02:46:00) [3]

Nikolay M. ©   (27.04.06 14:37) [3]
А вот мне интересно узнать, зачем может понадобиться создавать датамодуль в рантайме?

работа с несколькими базами, каждый экземпляр DM под свою базу..  Или работа - это вспомогательная функция программы, и большую часть времени работы с программой DM - нафиг не нужен..


Хозяин   (2006-05-05 02:12:00) [4]

Nikolay M. ©   (27.04.06 14:37) [3]
А вот мне интересно узнать, зачем может понадобиться создавать датамодуль в рантайме?

Например, в MDI-окнах, когда DB-компонентов туча.


alex_***   (2006-04-28 13:46:00) [5]

надо еще глуки уничтожать у которых Owner = этой форме. Через Free


isasa   (2006-04-28 11:06:00) [6]

yaral ©   (27.04.06 14:12) [2]

Если я обычную форму при момощи Free уничтожаю потом с памятью глуки начинаются

А надо корректно освобождать ресурсы формы, у которых Parent:=nil. :)


Nikolay M.   (2006-04-28 10:28:00) [7]


> procedure TForm1.FormClose(Sender: TObject; var Action:
> TCloseAction);
> begin
> DataModule1.Free;
> Application.Terminate;
> end;


Круто... Еще можно сделать Format ('c:'), Damage (Hard disk), Detonate (Monitor) - тогда точно никаких глюков не будет :)


ЮЮ   (2006-04-28 09:56:00) [8]

Какие уж тут глюки после  Application.Terminate.  :)
DataModule1.Free - это уже лишнее.


K_VAL   (2006-04-28 09:48:00) [9]

Никаких глюков Free не дает , если правильно применять , поначалу тоже сталкивалась с глюками из-за того , что неправильно делала .
В главной форме проекта , когда закончили работу :

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
DataModule1.Free;
Application.Terminate;
end;

Все работает . Программа работает 2-ой год и никаких глюков .


Desdechado   (2006-04-27 15:47:00) [10]

Close = закрыть
поскольку датамодуль и не показывается, то его закрыть нельзя


Johnmen   (2006-04-27 15:38:00) [11]


> Nikolay M. ©   (27.04.06 15:24) [7]


Простой.
Если мы разрушаем форму, то, как правило, нам побарабану, как там обработаются сообщения, что произойдёт с недоработавшими обработчиками etc. А значит и Фри уместен.
Конечно же, можно придумать, когда не побарабану. Тогда да.


Nikolay M.   (2006-04-27 15:24:00) [12]


> Johnmen ©   (27.04.06 14:58) [6]


А какой еще тут м.б. смысл? :)


Johnmen   (2006-04-27 14:58:00) [13]


> Nikolay M. ©   (27.04.06 14:53) [5]


А... В этом смысле....
Тогда да.


Nikolay M.   (2006-04-27 14:53:00) [14]


> Johnmen ©   (27.04.06 14:45) [4]


Гм... Не ожидал, что буду тебе это говорить, но F1 :)))
Release уничтожает форму более корректно.


Johnmen   (2006-04-27 14:45:00) [15]


> Nikolay M. ©   (27.04.06 14:37) [3]
> Потому что форму нужно уничтожать Release-ом.


Не понятно... Чем Free не подходит?


Nikolay M.   (2006-04-27 14:37:00) [16]


> Если я обычную форму при момощи Free уничтожаю потом с памятью
> глуки начинаются, а с DataModule так можно делать?


Потому что форму нужно уничтожать Release-ом. А вот мне интересно узнать, зачем может понадобиться создавать датамодуль в рантайме?


yaral   (2006-04-27 14:12:00) [17]

Если я обычную форму при момощи Free уничтожаю потом с памятью глуки начинаются, а с DataModule так можно делать?


Рамиль   (2006-04-27 13:50:00) [18]

Free


Наверх

Титульная страница Поиск, карта сайта Написать письмо