📄 kbmmemtabledesigner.pas
字号:
unit kbmMemTableDesigner;
interface
{$I kbmMemTable.inc}
uses
{$ifdef LEVEL6}
{$ifndef LINUX}
{$IFDEF DOTNET}
Borland.Vcl.Design.DesignEditors,
{$ELSE}
DesignEditors,
{$ENDIF}
{$endif}
{$else}
Dsgnintf,
{$endif}
db;
{$ifndef LINUX}
type
TkbmMemTableDesigner = class(TComponentEditor)
private
public
procedure ExecuteVerb(Index: Integer); override;
function GetVerb(Index: Integer): string; override;
function GetVerbCount: Integer; override;
procedure TableDesigner;
procedure LoadPersistentFileBinary;
procedure LoadPersistentFileNormal;
procedure EmptyTable;
end;
{$endif}
implementation
{$ifndef LINUX}
uses
{$IFNDEF DOTNET}
DSDesign,
{$ENDIF}
kbmMemTable,
kbmMemCSVStreamFormat,
kbmMemBinaryStreamFormat,
kbmMemTableDesForm;
procedure TkbmMemTableDesigner.EmptyTable;
begin
TkbmMemTable(Component).Active := True;
TkbmMemTable(Component).EmptyTable;
end;
procedure TkbmMemTableDesigner.ExecuteVerb(Index: Integer);
begin
{$ifndef LEVEL5}
ShowMessage('5: Index='+inttostr(Index));
inc(Index);
{$endif}
case Index of
{$ifdef LEVEL5}
{$ifdef DOTNET}
0: inherited ExecuteVerb(Index);
{$else}
0: DSDesign.ShowFieldsEditor(Designer, TDataSet(Component),TDSDesigner);
{$endif}
{$endif}
1: TableDesigner;
2: LoadPersistentFileBinary;
3: LoadPersistentFileNormal;
4: EmptyTable;
end;
end;
function TkbmMemTableDesigner.GetVerb(Index: Integer): String;
begin
{$ifndef LEVEL5}
inc(Index);
{$endif}
case Index of
{$ifdef LEVEL5}
0: Result:= '&Fields Editor';
{4endif}
1: Result:= '&Table Designer';
2: Result:= '&Load Persistent File (Binary)';
3: Result:= '&Load Persistent File (Normal)';
4: Result:= '&Empty Table';
end;
end;
function TkbmMemTableDesigner.GetVerbCount: Integer;
begin
{$ifdef LEVEL5}
Result:=5;
{$else}
Result:=4;
{$endif}
end;
procedure TkbmMemTableDesigner.LoadPersistentFileBinary;
var
DummyTable:TkbmMemTable;
Fmt:TkbmCustomStreamFormat;
begin
DummyTable:=TkbmMemTable.Create(nil);
Fmt:=TkbmBinaryStreamFormat.Create(nil);
try
DummyTable.LoadFromFileViaFormat(TkbmMemTable(Component).PersistentFile,Fmt);
DummyTable.Active:=True;
TkbmMemTable(Component).Active:=True;
TkbmMemTable(Component).EmptyTable;
frmKbmMemTableDesigner.CopyDataSet(DummyTable,TDataSet(Component),False);
DummyTable.Active:=False;
finally
Fmt.Free;
DummyTable.Free;
end;
end;
procedure TkbmMemTableDesigner.LoadPersistentFileNormal;
var
DummyTable:TkbmMemTable;
Fmt:TkbmCustomStreamFormat;
begin
DummyTable:=TkbmMemTable.Create(nil);
Fmt:=TkbmCSVStreamFormat.Create(nil);
try
DummyTable.LoadFromFileViaFormat(TkbmMemTable(Component).PersistentFile,Fmt);
DummyTable.Active := True;
TkbmMemTable(Component).Active:=True;
TkbmMemTable(Component).EmptyTable;
frmKbmMemTableDesigner.CopyDataSet(DummyTable,TDataSet(Component),False);
DummyTable.Active := False;
finally
Fmt.Free;
DummyTable.Free;
end;
end;
procedure TkbmMemTableDesigner.TableDesigner;
var
frmKbmMemTableDesigner:TfrmKbmMemTableDesigner;
begin
frmKbmMemTableDesigner:=TfrmKbmMemTableDesigner.Create(nil);
try
frmkbmMemTableDesigner.Designer := Designer;
frmKbmMemTableDesigner.MemTable:=TkbmMemTable(Component);
frmKbmMemTableDesigner.ShowModal;
finally
// frmKbmMemTableDesigner.Free;
end;
end;
{$endif}
{$endif}
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -