Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Unit


Автор: A5uKa 13.7.2010, 07:54
Хочу часть кода из формы перенести в юнит. Проблемы с доступом
(Access violation)

явно что-то делаю не так ...

cpp :

Код

//---------------------------------------------------------------------------
#pragma hdrstop

#include "SQL.h"
#include "Main.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)

void LoadSQL(TObject *Sender)
{
        MainForm->ADOConnection->Connected=true; // ну и тут ошибка
        ...


откуда вызываю делаю инклуд этого cpp ну и пишу просто
Код

void __fastcall TMainForm::N20Click(TObject *Sender)
{
        LoadSQL(Sender);
}

Автор: mrbrooks 13.7.2010, 08:02

Цитата(A5uKa @  13.7.2010,  08:54 Найти цитируемый пост)
Хочу часть кода из формы перенести в юнит. 

для такого рода вещей парни из Борланда придумали DataModule (New - Other - Data Module). аналогично можно подключить и Unit
подключить к классу формы их можно либо в ручную, либо магическими клавишами Alt-F11.

Автор: Alexeis 13.7.2010, 09:56
A5uKa, mrbrooks имеет ввиду, что все не визуальные компоненты БД/Отчетов и т.д. перенести в датамодуль и работать там как с формой, с одним отличием, что датамодуль не будет виден на экране. 

Автор: A5uKa 13.7.2010, 14:56
Понятно ... но мне не это надо

Автор: Alexeis 13.7.2010, 15:00
Цитата(A5uKa @  13.7.2010,  13:56 Найти цитируемый пост)
Понятно ... но мне не это надо

  Значит у тебя компоненты используются до их создания.

Автор: A5uKa 13.7.2010, 15:38
Да нет вообще дело было не в этом )

Просто TDataModule1::LoadSQL( надо было написать  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)