adbtplfd.pas
来自「delphi编程控件」· PAS 代码 · 共 113 行
PAS
113 行
unit adbtplfd;
(*
COPYRIGHT (c) RSD Software 1997 - 98
All Rights Reserved.
*)
interface
{$I aclver.inc}
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, StdCtrls, adbtempl;
type
TFAutoDBFieldAdd = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
ListBox: TListBox;
LcFieldType: TLabel;
Bevel1: TBevel;
LFieldType: TLabel;
Bevel2: TBevel;
BOk: TButton;
BCancel: TButton;
BHelp: TButton;
DBDefControl: TButton;
LcDBDefControlName: TLabel;
Bevel3: TBevel;
LDefControlName: TLabel;
LcDBDefControlType: TLabel;
LDefControlType: TLabel;
Bevel4: TBevel;
procedure DBDefControlClick(Sender: TObject);
procedure ListBoxClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
AutoDefControl : TAutoDBDefControl;
public
{ Public declarations }
end;
function CreateAutoDefField(AComponent : TComponent) : TAutoDefField;
implementation
uses adbtplcn, adbtmple, autostrs, audbstrs, DB;
{$R *.DFM}
function CreateAutoDefField(AComponent : TComponent) : TAutoDefField;
Var
AForm : TFAutoDBFieldAdd;
ADataSet : TAutoDefDataSet;
i : Integer;
begin
Result := Nil;
AForm := TFAutoDBFieldAdd.Create(AComponent);
ADataSet := TFAutoRepositoryEditor(AComponent).CurDefDataSet;
for i := 0 to ADataSet.DataSet.FieldCount - 1 do begin
if(ADataSet.DefFields.GetDefField(ADataSet.DataSet.Fields[i].FieldName) = Nil) then
AForm.ListBox.Items.AddObject(ADataSet.DataSet.Fields[i].FieldName, ADataSet.DataSet.Fields[i]);
end;
with AForm do begin
if(ListBox.Items.Count > 0) then
ListBox.ItemIndex := 0;
AutoDefControl := Nil;
ListBoxClick(Nil);
ShowModal;
end;
if(AForm.ModalResult = mrOk) then begin
Result := ADataSet.DefFields.Add;
Result.DataField := AForm.ListBox.Items[AForm.ListBox.ItemIndex];
Result.DBDefControl := AForm.AutoDefControl;
end;
AForm.Free;
end;
procedure TFAutoDBFieldAdd.DBDefControlClick(Sender: TObject);
Var
ADefControl : TAutoDBDefControl;
begin
ADefControl := SelectAutoDBDefControl(Owner);
if(ADefControl <> Nil) then begin
AutoDefControl := ADefControl;
LDefControlName.Caption := AutoDefControl.Name;
LDefControlType.Caption := DBDefControlTypeToString(AutoDefControl.DBDefControlType);
end;
ListBoxClick(Sender);
end;
procedure TFAutoDBFieldAdd.ListBoxClick(Sender: TObject);
begin
BOk.Enabled := (ListBox.ItemIndex <> -1) and (ListBox.Items.Count > 0)
and (AutoDefControl <> Nil);
if(ListBox.ItemIndex <> -1) then
LFieldType.Caption := FieldTypeToString(TField(ListBox.Items.Objects[ListBox.ItemIndex]).DataType);
end;
procedure TFAutoDBFieldAdd.FormCreate(Sender: TObject);
begin
BOK.Caption := LoadStr(ACB_OK);
BCancel.Caption := LoadStr(ACB_CANCEL);
BHelp.Caption := LoadStr(ACB_HELP);
LcFieldType.Caption := LoadStr(ACDB_FIELDTYPE);
LcDBDefControlName.Caption := LoadStr(ACDB_DBDEFCONTROLNAME);
LcDBDefControlType.Caption := LoadStr(ACDB_DBDEFCONTROLTYPE);
DBDefControl.Caption := LoadStr(ACDB_REPOSDEFCONTROLEDITOR);
Caption := LoadStr(ACDB_REPOSADDDEFFIELD);
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?