![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как в классе динамически создать компонент? [D7]
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 и кто его проинициализировал?