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

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

Как в классе динамически создать компонент? [D7]


Страницы:   1 2

sD ©   (2008-08-14 11:53:00) 

Доброго времени суток уважаемы эксперты!
Хочу написать класс, который будет работать с б.д. Классу доступен компонент ADOConnection, в конструкторе динамически создается TADOQuery, и метод класса возвращает TDataSet. Возникает ошибка в процессе выполнения программы (не может создать объект TADOQuery). Как написать правильное создание? Спасибо.

Ttelephone=class(TObject)
   q:TADOQuery;

 public
    constructor Create;
    destructor Destroy;
    function  Index(-param-):TDataSet;
 end;

/----------------------------------------------------------------
constructor Ttelephone.Create;
begin
    q:= TADOQuery.Create(DM);//DM - DataModul <-Ошибка при выполнении
    q.Connection:= DM.ADOConnection1;
end;
//------------------------------------------------------------------------------
destructor Ttelephone.Destroy;
begin
 q.Destroy;
end;
//------------------------------------------------------------------------------
function  Ttelephone.Index(-param-):TDataSet;
begin
 q.SQL.Text:='---запрос---';
 q.active:=true;
 result:=q;
end;


sD   (2008-08-14 12:38:00) [21]

Пример такого волшебного присваивания можно увидеть?


Medbe}I{onok XML   (2008-08-14 12:35:00) [22]

нет.

Врешь?
Где в твоем классе объявление DM?
У тебя это глобальная переменная из датамодуля видимого благодаря включению модуля в юзес компонента.
Замечательный компонент, ничего не скажешь.


Medbe}I{onok XML   (2008-08-14 12:33:00) [23]

оператором присвоения


sD   (2008-08-14 12:31:00) [24]

нет.

> Я вижу что это модуль.Кто проинициализировал эту переменную
> или поле чтобы ты его начал использовать?

DataModule был создан при запуске программы.
Как проинициализировать в классе переменную, для создания компонента на нем???


Medbe}I{onok XML   (2008-08-14 12:13:00) [25]

Или ты хочешь сказать, что в модуле этого чудесного компонента есть юзез модуля данных программы?


Medbe}I{onok XML   (2008-08-14 12:07:00) [26]

Я вижу что это модуль.
Кто проинициализировал эту переменную или поле чтобы ты его начал использовать?


sD   (2008-08-14 12:01:00) [27]

Dm это DataModule он подключен с модулю, где описан класс. Как написать правильно?


Medbe}I{onok XML   (2008-08-14 11:57:00) [28]

q:= TADOQuery.Create(DM);//DM - DataModul <-Ошибка при выполнении

Кто такой Dm и кто его проинициализировал?


Страницы:   1 2

Наверх

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