📄 dxmdatps.pas
字号:
{*******************************************************************}
{ }
{ Developer Express Visual Component Library }
{ ExpressMemData - CLX/VCL Edition }
{ }
{ Copyright (c) 1998-2008 Developer Express Inc. }
{ ALL RIGHTS RESERVED }
{ }
{ The entire contents of this file is protected by U.S. and }
{ International Copyright Laws. Unauthorized reproduction, }
{ reverse-engineering, and distribution of all or any portion of }
{ the code contained in this file is strictly prohibited and may }
{ result in severe civil and criminal penalties and will be }
{ prosecuted to the maximum extent possible under the law. }
{ }
{ RESTRICTIONS }
{ }
{ THIS SOURCE CODE AND ALL RESULTING INTERMEDIATE FILES }
{ (DCU, OBJ, DLL, DPU, SO, ETC.) ARE CONFIDENTIAL AND PROPRIETARY }
{ TRADE SECRETS OF DEVELOPER EXPRESS INC. THE REGISTERED DEVELOPER}
{ IS LICENSED TO DISTRIBUTE THE EXPRESSMEMDATA }
{ AS PART OF AN EXECUTABLE PROGRAM ONLY. }
{ }
{ THE SOURCE CODE CONTAINED WITHIN THIS FILE AND ALL RELATED }
{ FILES OR ANY PORTION OF ITS CONTENTS SHALL AT NO TIME BE }
{ COPIED, TRANSFERRED, SOLD, DISTRIBUTED, OR OTHERWISE MADE }
{ AVAILABLE TO OTHER INDIVIDUALS WITHOUT EXPRESS WRITTEN CONSENT }
{ AND PERMISSION FROM DEVELOPER EXPRESS INC. }
{ }
{ CONSULT THE END USER LICENSE AGREEMENT FOR INFORMATION ON }
{ ADDITIONAL RESTRICTIONS. }
{ }
{*******************************************************************}
unit dxmdatps;
interface
{$I cxVer.inc}
uses
{$IFDEF DELPHI6}
DesignIntf,
{$ELSE}
DsgnIntf,
{$ENDIF}
Windows, Classes, Controls, Forms, StdCtrls, dxmdaset, ExtCtrls, Dialogs,
Menus, Graphics, DB, DBGrids;
type
TfrmdxMemDataPersistent = class(TForm)
private
pnlBottom: TPanel;
pnlBottomRight: TPanel;
btnClear: TButton;
btnLoad: TButton;
btnSave: TButton;
btnOK: TButton;
btnCancel: TButton;
OpenDialog: TOpenDialog;
SaveDialog: TSaveDialog;
procedure btnClearClick(Sender: TObject);
procedure btnLoadClick(Sender: TObject);
procedure btnSaveClick(Sender: TObject);
private
FMemData: TdxMemData;
FDataSource: TDataSource;
FDBGrid: TDBGrid;
procedure CreateControls;
procedure CreateDataAndGrid;
public
procedure SetMemData(AMemData: TdxMemData);
end;
procedure ShowMemDataPersistentDesigner(AMemData: TdxMemData; ADesigner: IDesigner);
implementation
procedure ShowMemDataPersistentDesigner(AMemData: TdxMemData; ADesigner: IDesigner);
procedure SetDesignerModified;
begin
if ADesigner <> nil then
ADesigner.Modified;
end;
var
AForm: TfrmdxMemDataPersistent;
begin
AForm := TfrmdxMemDataPersistent.CreateNew(nil {$IFDEF DELPHI4}, 0 {$ENDIF});
try
AForm.CreateControls;
AForm.CreateDataAndGrid;
AForm.SetMemData(AMemData);
if AForm.ShowModal = mrOK then
begin
if AForm.FMemData.State in dsEditModes then
AForm.FMemData.Post;
AForm.FMemData.Persistent.SaveData;
AMemData.Persistent.Assign(AForm.FMemData.Persistent);
SetDesignerModified;
end;
finally
AForm.Free;
end;
end;
procedure TfrmdxMemDataPersistent.SetMemData(AMemData: TdxMemData);
begin
FMemData.CreateFieldsFromDataSet(AMemData);
FMemData.Persistent.Assign(AMemData.Persistent);
FMemData.Persistent.LoadData;
if not FMemData.Active then
FMemData.Open;
end;
procedure TfrmdxMemDataPersistent.CreateDataAndGrid;
begin
FMemData := TdxMemData.Create(self);
FDataSource := TDataSource.Create(self);
FDataSource.DataSet := FMemData;
FDBGrid := TDBGrid.Create(self);
FDBGrid.Parent := self;
FDBGrid.Align := alClient;
FDBGrid.DataSource := FDataSource;
end;
procedure TfrmdxMemDataPersistent.btnClearClick(Sender: TObject);
begin
FMemData.Close;
FMemData.Open;
end;
procedure TfrmdxMemDataPersistent.btnLoadClick(Sender: TObject);
begin
if OpenDialog.Execute then
try
FMemData.LoadFromBinaryFile(OpenDialog.FileName);
except
end;
end;
procedure TfrmdxMemDataPersistent.btnSaveClick(Sender: TObject);
begin
if SaveDialog.Execute then
try
FMemData.SaveToBinaryFile(SaveDialog.FileName);
except
end;
end;
procedure TfrmdxMemDataPersistent.CreateControls;
begin
Width := 473;
Height := 376;
BorderIcons := [biMaximize];
Caption := 'ExpressMemData Persistent Editor...';
Color := clBtnFace;
Position := poScreenCenter;
pnlBottom := TPanel.Create(self);
with pnlBottom do
begin
Parent := self;
Height := 42;
Align := alBottom;
BevelOuter := bvNone;
TabOrder := 0;
end;
pnlBottomRight := TPanel.Create(self);
with pnlBottomRight do
begin
Parent := pnlBottom;
Align := alRight;
BevelOuter := bvNone;
Height := 34;
end;
btnClear := TButton.Create(self);
with btnClear do
begin
Parent := pnlBottomRight;
Left := 1;
Top := 5;
Width := 82;
Height := 24;
Caption := '&Clear';
OnClick := btnClearClick;
end;
btnLoad := TButton.Create(self);
with btnLoad do
begin
Parent := pnlBottomRight;
Left := btnClear.Left + btnClear.Width + 5;
Top := btnClear.Top;
Width := btnClear.Width;
Height := btnClear.Height;
Caption := '&Load...';
OnClick := btnLoadClick;
end;
btnSave := TButton.Create(self);
with btnSave do
begin
Parent := pnlBottomRight;
Left := btnLoad.Left + btnClear.Width + 5;;
Top := btnClear.Top;
Width := btnClear.Width;
Height := btnClear.Height;
Caption := '&Save...';
OnClick := btnSaveClick
end;
btnOK := TButton.Create(self);
with btnOK do
begin
Parent := pnlBottomRight;
Left := btnSave.Left + btnClear.Width + 5;
Top := btnClear.Top;
Width := btnClear.Width;
Height := btnClear.Height;
Caption := '&OK';
Default := True;
ModalResult := 1;
end;
btnCancel := TButton.Create(self);
with btnCancel do
begin
Parent := pnlBottomRight;
Left := btnOK.Left + btnClear.Width + 5;
Top := btnClear.Top;
Width := btnClear.Width;
Height := btnClear.Height;
Cancel := True;
Caption := '&Cancel';
ModalResult := 2;
end;
pnlBottomRight.Width := btnCancel.Left + btnClear.Width + 5;
Opendialog := TOpendialog.Create(self);
with Opendialog do
begin
DefaultExt := '*.dat';
Title := 'Open';
end;
SaveDialog := TSaveDialog.Create(self);
with SaveDialog do
begin
DefaultExt := '*.dat';
Title := 'Save As';
end;
ActiveControl := btnLoad;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -