MyDac components - Runtime Creating
Posted: Sun 20 Jan 2008 23:18
Could you help me to solve the following problem:
I need to create in RunTime mode the following components:
- TMyDataSource;
- TMyQuery.
They will be used to create several Grids:
There appears an error: 'Connection is not defined'
If I use TMyDataSource and TMyQuery components in DesignTime mode everything works perfectly.
Thank you for your help.
I need to create in RunTime mode the following components:
- TMyDataSource;
- TMyQuery.
They will be used to create several Grids:
Code: Select all
procedure TFRM_Work_Shedule.FormCreate(Sender: TObject);
Var TableClass, SourceClass, QueryClass: TControlClass;
Work_Shedule_Table, Work_Shedule_DataSource, Work_Shedule_Query: TControl;
...
begin
...
TableClass:=TControlClass(TDBGridEh);
SourceClass:=TControlClass(TMyDataSource);
QueryClass:=TControlClass(TMyQuery);
Work_Shedule_Table:=TableClass.Create(WorkShedule_Doctors_SBox);
Work_Shedule_Table.Parent:=WorkShedule_Doctors_SBox;
Work_Shedule_DataSource:=SourceClass.Create(WorkShedule_Doctors_SBox);
Work_Shedule_Query:=QueryClass.Create(WorkShedule_Doctors_SBox);
TMyDataSource(Work_Shedule_DataSource).DataSet:=TMyQuery(Work_Shedule_Query);
TDBGridEh(Work_Shedule_Table).DataSource:=TMyDataSource(Work_Shedule_DataSource);
TDBGridEh(Work_Shedule_Table).TitleLines:=2;
TDBGridEh(Work_Shedule_Table).Flat:=true;
TDBGridEh(Work_Shedule_Table).Height:=WorkShedule_Doctors_SBox.Height;
TDBGridEh(Work_Shedule_Table).Width:=150;
TDBGridEh(Work_Shedule_Table).Left:=0;
TDBGridEh(Work_Shedule_Table).AutoFitColWidths:=true;
TMyQuery(Work_Shedule_Query).SQL.Clear;
TMyQuery(Work_Shedule_Query).SQL.Add('SELECT * FROM WorkShedule');
TMyQuery(Work_Shedule_Query).Open;
TDBGridEh(Work_Shedule_Table).Name:='Table'+IntToStr(i);
TMyDataSource(Work_Shedule_DataSource).Name:='DSource'+IntToStr(i);
TMyQuery(Work_Shedule_Query).Name:='Query'+IntToStr(i);
end;
end;
If I use TMyDataSource and TMyQuery components in DesignTime mode everything works perfectly.
Thank you for your help.