![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TDataModule [D5, D6, D7]
Lefan © (2003-05-06 11:37:00)Приветсвую все!!!
Народ, такой вопрос, делаю так:
...
var dataDB : TDataModule;
begin
dataDB := TDataModule1.Create(nil);
^^^^^
сюда надо параметр, а какой не могу разобраться
...
Заранее благодарен.
С уважением Алексей.
MsGuns (2003-05-06 16:12:00) [1]>Sergey Masloff (06.05.03 16:02)
>Кстати, в свете предыдущих дискуссий о ты и Вы - в моем случае это не было проявлением обиды и так далее. Так, на всякий случай уточню.
Если та дискуссия была прочитана в полном объеме и внимательно, то я там высказал свое ХО по этому поводу. В частности, что одна из причин, побуждающих использовать форму обращения "Вы" - это элементарное уважение и признание превосходства. В данном вопросе я именно это и хотел подчеркнуть. Если мы будем спорить на равных, будет "тыкание" ;)
Поэтому
Спасибо Вамза пояснение.
С неменьшим уважением.
ЗЫ. А теперь как Добчинский с Бобчинским будем по очереди с интервалом в 5-10 мин. выражать свое уважение ;))))
Sergey Masloff (2003-05-06 16:02:00) [2]MsGuns ©
>Очень жаль, что фразу об опыте Вы поняли с точностью наоборот
И мне жаль ;-) Кстати, в свете предыдущих дискуссий о ты и Вы - в моем случае это не было проявлением обиды и так далее. Так, на всякий случай уточню.
>На счет класса, реализующего бизнес-логику, я усек. Только все >равно мне невдомек, почему я не могу это реализовать в простом >юните ? Все это динамическое создание и т.п. И оформить это >все, например, в библиотеку ?
Можно. Только много раз надо будет написать Create и Free() а лишние 50 строк не способствуют моральному удовлетворению. Поэтому я часто использую модуль данных именно как юнит для разных функций и - как бесплатный довесок - для нескольких компонентов для работы с БД. То есть я динамически создаю 1 объект - модуль данных а остальные уже он сам. Просто удобно. Хотя иногда я использую и предложеный Вами вариант- динамическое создание всех нужных компонент. Скажу больше, я еще не решил окончательно какой вариант нравится мне больше.
С уважением
MsGuns (2003-05-06 15:50:00) [3]>Sergey Masloff (06.05.03 15:44)
Очень жаль, что фразу об опыте Вы поняли с точностью наоборот ;(( Опыта мало как раз у меня. О Вашем опыте сужу по Вашим постам, из которых я и сделал такой вывод ;)
На счет класса, реализующего бизнес-логику, я усек. Только все равно мне невдомек, почему я не могу это реализовать в простом юните ? Все это динамическое создание и т.п. И оформить это все, например, в библиотеку ?
Sergey Masloff (2003-05-06 15:44:00) [4]MsGuns ©
>Опыта у меня не чета Вам и мне бы очень хотелось услышать примеры РАЦИОНАЛЬНОГО использования ДМ, создаваемого динамически.
Хорошая фраза. Непонятно только откуда Вам известно о количестве моего опыта ;-)) И что Вы понимаете под рациональностью? Модуль данных можно использовать не только как удобную добавку для девелопера. А и как полноценный класс реализующий логику работы с базой данных (а, возможно, и бизнес-логику). Не вся эта логика нужна одновременно, в приложении может быть несколько (много) десятков модулей данных и создавать их автоматически при старте приложения - мягко говоря, нехорошо.
MsGuns (2003-05-06 14:54:00) [5]>Sergey Masloff (06.05.03 14:13)
>Ну на нем компоненты которые нужны не при каждом запуске программы
Так пусть их динамически и создает в том юните, где этот самый хитрый отчет ! Насколько я понимаю назначение модуля данных - это просто удобная добавка в интерфейсе девелопера для выделения и централизации алгоритмики обмена данными со всеми ее наворотами. Опыта у меня не чета Вам и мне бы очень хотелось услышать примеры РАЦИОНАЛЬНОГО использования ДМ, создаваемого динамически.
Sergey Masloff (2003-05-06 14:13:00) [6]MsGuns © (06.05.03 11:46)
>А зачем его создавать в рантайме ? Или я чего-то недопонимаю ?
Ну на нем компоненты которые нужны не при каждом запуске программы. Какая-нибудь суперхитрая печать квартального отчета - на фига ее каждый раз при запуске программы в память поднимать.
Lefan © (06.05.03 11:37)
Если делаешь
> dataDB := TDataModule1.Create(nil);
то нужно позаботиться о том чтобы где-то потом сделать
dataDB.Free();
Если передать вместо nil какого-нибудь потомка TComponent то Free за тебя сделает этот передаваемый компонент.
Anatoly Podgoretsky (2003-05-06 13:48:00) [7]Может и правильно, а может и нет, твой код мы не видели.
Lefan (2003-05-06 13:12:00) [8]с nil работает, но но может это неправильно.....
Anatoly Podgoretsky (2003-05-06 11:52:00) [9]nil вполне устраивает, а так можешь любой наследник от TComponent
Соловьев (2003-05-06 11:49:00) [10]DataModule можно подключать к проекту и так. Я например когда скрипты писал так делал, и не создавал в ран-тайме.
MsGuns (2003-05-06 11:46:00) [11]А зачем его создавать в рантайме ? Или я чего-то недопонимаю ?