Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.04.24;
Скачать: CL | DM;

Вниз

TDBCtrlGrid: поведение при загрузке из dll   Найти похожие ветки 

 
CAMITHbIK ©   (2009-09-09 19:24) [0]

Дельфи7, Windows XP pro SP2
Для выбора записей из базы данных с последующей возможностью выбора группы записей создаю форму, с компонентом TDBCtrlGrid. Для выбора записей использую TDBCheckBox.
Если нижеприведенный код скомпиллировать в DLL, то флажок отображается только для текущей записи датасета (проверял как с ранним, так и с поздним связыванием).
При компилляции в exe-шник флажок отображается для каждой записи.
Если создавать форму в режиме конструктора - результат такой-же.
Если кто-то сталкивался с подобным поведением компонент, укажите напрвление поиска.


unit uModalf;

interface
uses
 Classes,
 StdCtrls,
 Forms,
 ADODB, DB,
 DBCGrids, DBCtrls;

type
 TDBCtrlGridEx = class(TDBCtrlGrid)
 published
   property Panel;
 end;

 TModalf = class(TForm)

 protected
   c: TADOConnection;
   q1: TADOQuery;
   ds: TDataSource;
   g: TDBCtrlGridEx;
   ch: TDBCheckBox;
   t1: TDBtext;
   procedure FormKeyPreview(Sender: TObject; var Key: Char);
 public
   constructor CreateNew(AOwner: TComponent);
   destructor Destroy;
 end;

var
 Modalf: TModalf;

function ShowModal__(cn:TADOConnection): Integer; stdcall;

implementation
var
c_:TADOConnection;

{ TModal }
constructor TModalf.CreateNew(AOwner: TComponent);
begin
 inherited CreateNew(AOwner);
 KeyPreview:=True;
 OnKeyPress:=FormKeyPreview;
 c:=c_;
 q1:=TADOQuery.Create(Self);
 q1.Connection:=c;
 q1.CursorType:=ctDynamic;
 q1.LockType:=ltOptimistic;
 q1.ParamCheck:=false;
 q1.Prepared:=True;
 q1.SQL.Add("select fr2,nn2 from CL2 order by 2");
 q1.Open;

 ds:=TDataSource.Create(Self);
 ds.DataSet:=q1;

 g:=TDBCtrlGridEx.Create(Self);
 g.Parent:=Self;
 g.DataSource:=ds;
 g.AllowDelete:=false; g.AllowInsert:=false;
 g.SetBounds(1,1,200,200);
 g.PanelWidth:=180; g.PanelHeight:=20; g.RowCount:=10;

 ch:=TDBCheckBox.Create(Self);
 ch.Parent:=g.Panel; ch.SetBounds(2,2,17,17);
 ch.ValueChecked:="1"; ch.ValueUnchecked:="0";
 ch.DataField:="fr2";

 t1:=TDBText.Create(Self);
 t1.Parent:=g.Panel; t1.SetBounds(20,2,160,17);
 t1.AutoSize:=false; t1.Transparent:=true;
 t1.DataField:="nn2";

 width:=210; Height:=240; Position:=poScreenCenter;
end;

destructor TModalf.Destroy;
begin
 q1.Close;
end;

procedure TModalf.FormKeyPreview(Sender: TObject; var Key: Char);
begin
 if (Key = #27) then Close;
end;

function ShowModal__(cn:TADOConnection): Integer; stdcall;
begin
 c_:=cn;
 Modalf:=TModalf.CreateNew(nil);
 c_:=nil;
 with Modalf do
   try
     ShowModal;
   finally
     Free;
   end;
end;

end.


 
Сергей М. ©   (2009-09-10 11:18) [1]

Формам не место в dll - их законное место в exe и bpl.


 
имя   (2009-09-14 09:52) [2]

Удалено модератором



Страницы: 1 вся ветка

Текущий архив: 2011.04.24;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.009 c
15-1293095836
Павел Калугин
2010-12-23 12:17
2011.04.24
Встретим новый год в Нижнем Новгороде?


15-1294819013
KSergey
2011-01-12 10:56
2011.04.24
Синхронизация файлов по FTP


2-1295347887
Mops
2011-01-18 13:51
2011.04.24
Использование интерфейсов


6-1215495439
AHTOLLlKA
2008-07-08 09:37
2011.04.24
Socks5 клиент, как состряпать запрос ?


2-1240595519
Артем
2009-04-24 21:51
2011.04.24
открыт ли порт?