adbtmple.pas
来自「delphi编程控件」· PAS 代码 · 共 600 行 · 第 1/2 页
PAS
600 行
Bar.Groups[i].Items[j].Free
else Inc(j);
end;
end;
procedure TFAutoRepositoryEditor.BDSAddClick(Sender: TObject);
Var
DS : TDataSet;
group : TAutoOutLookGroup;
DefDataSet : TAutoDefDataSet;
begin
DS := GetNewAutoDefDataSet(Repository);
if (DS <> Nil) then begin
DefDataSet := Repository.DefDataSets.Add;
DefDataSet.DataSet := DS;
group := Bar.Groups.Add;
group.Caption := DS.Owner.Name + '.' + DS.Name;
ModifyDesigner;
end;
end;
procedure TFAutoRepositoryEditor.BarChangeActiveGroup(Sender: TObject);
begin
BDSDelete.Enabled := Bar.ActiveGroup <> Nil;
BFAdd.Enabled := BDSDelete.Enabled;
if(Bar.ActiveGroup <> Nil) then begin
FCurDefDataSet := Repository.DefDataSets[Bar.ActiveGroupIndex];
LDSDataSetName.Caption := FCurDefDataSet.DataSet.Name;
LDSDataSetClass.Caption := FCurDefDataSet.DataSet.ClassName;
if (Bar.ActiveGroup.Items <> Nil) And (Bar.ActiveGroup.Items.Count > 0) then
Bar.SelectedItem := Bar.ActiveGroup.Items[0]
else Bar.SelectedItem := Nil;
end else begin
FCurDefDataSet := Nil;
BarChangeSelectedItem(Sender);
LDSDataSetName.Caption := '';
LDSDataSetClass.Caption := '';
end;
end;
procedure TFAutoRepositoryEditor.Button3Click(Sender: TObject);
begin
if(DefControlsForm = Nil) then
DefControlsForm := TFAutoRepositoryDefControls.Create(self);
DefControlsForm.Show;
end;
procedure TFAutoRepositoryEditor.BFAddClick(Sender: TObject);
Var
DefField : TAutoDefField;
item : TAutoOutLookItem;
begin
DefField := CreateAutoDefField(self);
if(DefField <> Nil) then begin
item := Bar.ActiveGroup.Items.Add;
item.ItemObject := DefField;
item.StoredItem := StoreItem1;
item.Caption := DefField.DataField;
if(DefField.Field <> Nil) then
Item.LargeImage := GetImageIndexByFieldType(DefField.Field.DataType);
Bar.SelectedItem := item;
ModifyDesigner;
end;
end;
procedure TFAutoRepositoryEditor.BarChangeSelectedItem(Sender: TObject);
begin
if(Bar.SelectedItem = Nil) And (Bar.ActiveGroup <> Nil)
And (Bar.ActiveGroup.Items.Count > 0) then
Bar.SelectedItem := Bar.ActiveGroup.Items[0];
BFDelete.Enabled := Bar.SelectedItem <> Nil;
BFClear.Enabled := BFDelete.Enabled;
LFieldName.Caption := '';
LFieldType.Caption := '';
LDefControlName.Caption := '';
LDefControlType.Caption := '';
if(Bar.SelectedItem <> Nil) then begin
FCurDefDataField := TAutoDefField(Bar.SelectedItem.ItemObject);
if(FCurDefDataField.Field <> Nil) then begin
LFieldName.Caption := FCurDefDataField.Field.FieldName;
LFieldType.Caption := FieldTypeToString(FCurDefDataField.Field.DataType);
end;
if(FCurDefDataField.DBDefControl <> Nil) then begin
LDefControlName.Caption := FCurDefDataField.DBDefControl.Name;
LDefControlType.Caption := DBDefControlTypeToString(FCurDefDataField.DBDefControl.DBDefControlType);
end;
end else FCurDefDataField := Nil;
BFCustomizeDefControl.Enabled := BFDelete.Enabled And (FCurDefDataField.DBDefControl <> Nil);
BViewDefControl.Enabled := BFCustomizeDefControl.Enabled;
end;
procedure TFAutoRepositoryEditor.BFCustomizeDefControlClick(
Sender: TObject);
Var
ADefControl : TAutoDBDefControl;
begin
ADefControl := SelectAutoDBDefControl(self);
if(ADefControl <> Nil) then begin
FCurDefDataField.DBDefControl := ADefControl;
BarChangeSelectedItem(Nil);
ModifyDesigner;
end;
end;
procedure TFAutoRepositoryEditor.BViewDefControlClick(Sender: TObject);
begin
ShowAutoDefField(FCurDefDataField);
end;
procedure TFAutoRepositoryEditor.BDSDeleteClick(Sender: TObject);
begin
if(Bar.ActiveGroup <> Nil) then begin
FCurDefDataSet.Free;
Bar.ActiveGroup.Free;
ModifyDesigner;
end;
end;
procedure TFAutoRepositoryEditor.BFDeleteClick(Sender: TObject);
begin
if(Bar.SelectedItem <> Nil) then begin
FCurDefDataField.Free;
ModifyDesigner;
end;
end;
procedure TFAutoRepositoryEditor.BFClearClick(Sender: TObject);
begin
if(Bar.ActiveGroup <> Nil) then begin
FCurDefDataSet.DefFields.Clear;
Bar.ActiveGroup.Items.Clear;
ModifyDesigner;
end;
end;
procedure TFAutoRepositoryEditor.BAddGridTemplateClick(Sender: TObject);
Var
AGridTemplate : TAutoRepositoryChild;
begin
AGridTemplate := FRepository.CreateGridTemplate;
GridTemplateList.Items.AddObject(AGridTemplate.Name, AGridTemplate);
AGridTemplate.OnChangeName := GridTemplateChangeName;
GridTemplateList.ItemIndex := GridTemplateList.Items.Count - 1;
GridTemplateListClick(Sender);
ModifyDesigner;
end;
procedure TFAutoRepositoryEditor.GridTemplateListClick(Sender: TObject);
Var
ACurGridTemplate : TAutoDBGridTemplate;
begin
if(GridTemplateList.Items.Count > 0) and (GridTemplateList.ItemIndex < 0)then
GridTemplateList.ItemIndex := 0;
if (GridTemplateList.ItemIndex > -1)
and (GridTemplateList.ItemIndex < GridTemplateList.Items.Count) then
ACurGridTemplate := TAutoDBGridTemplate(GridTemplateList.Items.Objects[GridTemplateList.ItemIndex])
else ACurGridTemplate := Nil;
if(FCurGridTemplate <> ACurGridTemplate) then begin
FCurGridTemplate := ACurGridTemplate;
BDeleteGridTemplate.Enabled := (FCurGridTemplate <> Nil);
BCustGridLayout.Enabled := BDeleteGridTemplate.Enabled;
end;
if(FCurGridTemplate <> Nil) And (FRepository.Designer <> Nil) then
{$IFDEF DELPHI4}IFormDesigner{$ELSE}TFormDesigner{$ENDIF}(Repository.Designer).SelectComponent(FCurGridTemplate);
end;
procedure TFAutoRepositoryEditor.FormCreate(Sender: TObject);
Var
bmp : TBitmap;
i : Integer;
St : String;
begin
FCurGridTemplate := Nil;
FCurPanelTemplate := Nil;
BDSAdd.Caption := LoadStr(ACB_ADDEX);
BDSDelete.Caption := LoadStr(ACB_DELETE);
BFAdd.Caption := LoadStr(ACB_ADDEX);
BFDelete.Caption := LoadStr(ACB_DELETE);
BFClear.Caption := LoadStr(ACB_CLEAR);
BAddGridTemplate.Caption := LoadStr(ACB_ADD);
BDeleteGridTemplate.Caption := LoadStr(ACB_DELETE);
BAddPanelTemplate.Caption := LoadStr(ACB_ADD);
BDeletePanelTemplate.Caption := LoadStr(ACB_DELETE);
BClose.Caption := LoadStr(ACB_CLOSE);
BHelp.Caption := LoadStr(ACB_HELP);
BCustGridLayout.Caption := LoadStr(ACDB_GRIDEDITOR);
BCustPanelLayout.Caption := LoadStr(ACDB_PANELEDITOR);
GBGridLayouts.Caption := LoadStr(ACDB_REPOSGRIDLAYOUTS);
GBPanelLayouts.Caption := LoadStr(ACDB_REPOSPANELLAYOUTS);
TS2.Caption := LoadStr(ACDB_REPOSCONTROLTEMPLATES);
TS1.Caption := LoadStr(ACDB_REPOSDEFFIELDS);
Button3.Caption := LoadStr(ACDB_REPOSDEFCONTROLEDITOR);
BViewDefControl.Caption := LoadStr(ACDB_REPOSVIEWDEFCONTROL);
BFCustomizeDefControl.Caption := LoadStr(ACDB_REPOSCUSTDEFCONTROL);
GBDefDataSet.Caption := LoadStr(ACDB_REPOSDEFDATASET);
GBDefField.Caption := LoadStr(ACDB_REPOSDEFFIELD);
LDataSetName.Caption := LoadStr(ACDB_DATASETNAME);
LDataSetClass.Caption := LoadStr(ACDB_DATASETCLASS);
LCFieldName.Caption := LoadStr(ACDB_FIELDNAME);
LCFieldType.Caption := LoadStr(ACDB_FIELDTYPE);
LCDBDefControlName.Caption := LoadStr(ACDB_DBDEFCONTROLNAME);
LCDBDefControlType.Caption := LoadStr(ACDB_DBDEFCONTROLTYPE);
bmp := TBitmap.Create;
bmp.Height := ImageList1.Height;
bmp.Width := ImageList1.Width;
for i := 1 to ACLDBTEMPLRESIMAGECOUNT do
begin
St := ACLDBTEMPLRESIMAGESTR;
if(i < 10) then
St := St + '0';
St := St + IntToStr(i);
bmp.Handle := LoadBitmap(HInstance, PChar(St));
if(bmp.Handle > 0) then
ImageList1.Add(bmp, Nil);
end;
bmp.Free;
end;
procedure TFAutoRepositoryEditor.BDeleteGridTemplateClick(Sender: TObject);
Var
OldItemIndex : Integer;
begin
if(FCurGridTemplate <> Nil) then begin
FCurGridTemplate.Free;
OldItemIndex := GridTemplateList.ItemIndex;
GridTemplateList.Items.Delete(OldItemIndex);
if(OldItemIndex < GridTemplateList.Items.Count) then
GridTemplateList.ItemIndex := OldItemIndex;
GridTemplateListClick(Sender);
ModifyDesigner;
end;
end;
procedure TFAutoRepositoryEditor.BCustGridLayoutClick(Sender: TObject);
begin
if(ShowAutoGridLayoutEditor(FCurGridTemplate.GridLayout)) then
ModifyDesigner;
end;
procedure TFAutoRepositoryEditor.PanelTemplateListClick(Sender: TObject);
Var
ACurPanelTemplate : TAutoDBPanelTemplate;
begin
if(PanelTemplateList.Items.Count > 0) And (PanelTemplateList.ItemIndex < 0)then
PanelTemplateList.ItemIndex := 0;
if (PanelTemplateList.ItemIndex > -1)
and (PanelTemplateList.ItemIndex < PanelTemplateList.Items.Count) then
ACurPanelTemplate := TAutoDBPanelTemplate(PanelTemplateList.Items.Objects[PanelTemplateList.ItemIndex])
else ACurPanelTemplate := Nil;
if(FCurPanelTemplate <> ACurPanelTemplate) then begin
FCurPanelTemplate := ACurPanelTemplate;
BDeletePanelTemplate.Enabled := (FCurPanelTemplate <> Nil);
BCustPanelLayout.Enabled := BDeletePanelTemplate.Enabled;
end;
if(FCurPanelTemplate <> Nil) And (FRepository.Designer <> Nil) then
{$IFDEF DELPHI4}IFormDesigner{$ELSE}TFormDesigner{$ENDIF}(Repository.Designer).SelectComponent(FCurPanelTemplate);
end;
procedure TFAutoRepositoryEditor.BAddPanelTemplateClick(Sender: TObject);
Var
APanelTemplate : TAutoRepositoryChild;
begin
APanelTemplate := FRepository.CreatePanelTemplate;
PanelTemplateList.Items.AddObject(APanelTemplate.Name, APanelTemplate);
APanelTemplate.OnChangeName := PanelTemplateChangeName;
PanelTemplateList.ItemIndex := PanelTemplateList.Items.Count - 1;
PanelTemplateListClick(Sender);
ModifyDesigner;
end;
procedure TFAutoRepositoryEditor.BDeletePanelTemplateClick(
Sender: TObject);
Var
OldItemIndex : Integer;
begin
if(FCurPanelTemplate <> Nil) then begin
FCurPanelTemplate.Free;
OldItemIndex := PanelTemplateList.ItemIndex;
PanelTemplateList.Items.Delete(OldItemIndex);
if(OldItemIndex < PanelTemplateList.Items.Count) then
PanelTemplateList.ItemIndex := OldItemIndex;
PanelTemplateListClick(Sender);
ModifyDesigner;
end;
end;
procedure TFAutoRepositoryEditor.BCustPanelLayoutClick(Sender: TObject);
begin
if(ShowAutoPanelLayoutEditor(FCurPanelTemplate.PanelLayout)) then
ModifyDesigner;
end;
procedure TFAutoRepositoryEditor.BCloseClick(Sender: TObject);
begin
Close;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?