Использование объектов в своем классе типа TADOQuery
{
private:
TADOQuery *qCBO;
public:
void GetCboLoc(TComboBox *cboLoc);
void GetCboJud(TComboBox *cboJud, int idLoc);
TcFillCbo(void);
};
что еще нужно сделать чтобы в функции GetCboLoc(TComboBox *cboLoc) можно было работать с объектом qCBO
вот код функции:
{
cboLoc->Clear();
cboLoc->Items->Add("Новое место");
qCBO->Close();
qCBO->SQL->Clear();
qCBO->SQL->Add("SELECT NameLoc FROM TLoc");
qCBO->Open();
for (int i=0;i<qCBO->RecordCount;i++)
{
cboLoc->Items->Add(qCBO->FieldValues["NameLoc"]);
qCBO->Next();
}
}
во время выполнения программа на строке
qCBO->Connection = frmMain->ADOConGen;
выдает [COLOR=red]Access violation[/COLOR]
т.е. адрес объекта есть, а его тела нет... я так понимаю.
подскажите что делать?
Добавь к своему классу конструктор, и в этом конструкторе инициализируй член qCBO.
как инициализировать?
вот мой конструктор
{
qCBO->Connection = frmMain->ADOConGen;
}
вот что я писал типа по моим понятиям я инициализирую
{
qCBO = new TADOQuery;
qCBO->Connection = frmMain->ADOConGen;
}
только в этом случае вот что за ошибка мне выскакивет
[COLOR=red][C++ Error] unitOurClasses.cpp(9): E2285 Could not find a match for 'TADOQuery::TADOQuery()'[/COLOR]
подскажи если правильно
если нет то подскажи как правильно...
помимо всего прочего, вы не пробовaли воспользоваться операцией new :-? :D
ага, вижу пробовали, смотрим F1 TADOQuery
__fastcall virtual TDataSet(Classes::TComponent* AOwner);
Description
Call TADOQuery indirectly, using the new keyword, to instantiate an ADO query component at runtime. Query components placed in forms or data modules at design time are created automatically.
Дайте пожалуйста живой пример простого своего класса, в котором будет работать ADOQuery.
Ребята, спасибо за участие, но до меня так и не дошло как ето дело делать...
У-у-у-у... как все запущено... ((с) др. Шац)
class TMyClass
{
private:
TADOQuery* MyQuery;
publuc:
TMyClass();
~TMyClass();
}
... прошло время
TMyClass::TMyClass
{
//в качестве владельца берем, что под руку попалось, главно чтоб VCL'ное
MyQuery = new TADOQuery(Application);
MyQuery->Connection = ...
}
TMyClass::~TMyClass()
{
MyQuery->Free;
}
вот наваял
и не лень же мне было? :)
{
//в качестве владельца берем, что под руку попалось, главно чтоб VCL'ное
Н-да, запущено действительно сильно! Никогда так не делайте! Если владелец не определен, надо передавать NULL, и все. Только освобождать экземляр вручную придется. Собственно, для чего и создается класс.
Н-да, запущено действительно сильно! Никогда так не делайте! Если владелец не определен, надо передавать NULL, и все. Только освобождать экземляр вручную придется. Собственно, для чего и создается класс.
И чем вам не нравится Application - из эстетики или из практики? Еще ни ни разу у меня ничего не завалилось при таком владельце :)
И чем вам не нравится Application - из эстетики или из практики? Еще ни ни разу у меня ничего не завалилось при таком владельце :)
Не понравилось твоё "что под руку попадется"=)
и фриман прав. NULL всегда рулил и будет рулить.
Не понравилось твоё "что под руку попадется"=)
и фриман прав. NULL всегда рулил и будет рулить.
Ребята... благодарствую... все... в норме... просто никак не мог определиться с папашей...
Сейчас сделали анализ ДНК и все в норме... зарулило...
Не понравилось твоё "что под руку попадется"=)
Не ну это я так - для красного словца :). Естественно разные близлежащие буттоны и едиты и т.п. не стоит указывать. Просто не люблю безхозных компонент.
Просто не люблю безхозных компонент.
Программируешь ты тоже по любви-нелюбви? Любовь понятие иррациональное и с программированием согласуется плохо. Для лечения советую прочитать вначале про идеологию использования Owner-ов в TCompoment.
Программируешь ты тоже по любви-нелюбви? Любовь понятие иррациональное и с программированием согласуется плохо. Для лечения советую прочитать вначале про идеологию использования Owner-ов в TCompoment.
Исключительно по любви и никак иначе :)
Как бы то ни было, проблем с тем кому какого владельца назначить у меня никогда не возникало, и NULL тоже если нужно, так что потребности в лечении не испытываю ;)
А вообще это уже треп пошел - как я понял проблема-то решена.
А вообще это уже треп пошел - как я понял проблема-то решена.
Угу. Надо же от работы как-то лечиться. :D