cmoney.pas
来自「Delphi深度探索,Delphi深度探索(第二版)」· PAS 代码 · 共 143 行
PAS
143 行
{-----------------------------------------------------------------------------
Unit Name: CMoney
Author: hubdog(陈省)
Email: hubdog@263.net
Purpose: 演示Bold开发的高级功能
History:
2003-6-28 创建本单元
-----------------------------------------------------------------------------}
unit CMoney;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, BoldAFPDefault, StdCtrls, BoldSubscription, BoldHandles,
BoldRootedHandles, BoldAbstractListHandle, BoldCursorHandle,
BoldListHandle, ExtCtrls, BoldNavigatorDefs, BoldNavigator, Grids,
BoldGrid, Menus, BoldImage;
type
TFormMain = class(TForm)
blhPerson: TBoldListHandle;
lblPerson: TLabel;
bnPerson: TBoldNavigator;
bgPerson: TBoldGrid;
lblAcct: TLabel;
bnAcct: TBoldNavigator;
bgAcct: TBoldGrid;
blhAcct: TBoldListHandle;
btnAmount: TButton;
btnPaste: TButton;
btnLoad: TButton;
dlgOpen: TOpenDialog;
biPhoto: TBoldImage;
btnReport: TButton;
blhConstraints: TBoldListHandle;
lbl2: TLabel;
bg1: TBoldGrid;
btnQry: TButton;
edtQry: TEdit;
lbl1: TLabel;
bnCategory: TBoldNavigator;
bgCategory: TBoldGrid;
blhCategory: TBoldListHandle;
procedure bgAcctDrawCell(Sender: TObject; Canvas: TCanvas; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState);
procedure btnAmountClick(Sender: TObject);
procedure btnPasteClick(Sender: TObject);
procedure btnLoadClick(Sender: TObject);
procedure btnReportClick(Sender: TObject);
procedure btnQryClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure EditOCL(Handler:TBoldListHandle);
end;
var
FormMain: TFormMain;
implementation
uses CDataModule, MoneyClasses, CReport, BoldOclPropEditor;
{$R *.dfm}
procedure TFormMain.bgAcctDrawCell(Sender: TObject; Canvas: TCanvas; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState);
var
AcctItem:TAcctItem;
begin
if bgAcct.BoldList.Elements[ARow-1] is TAcctItem then
begin
AcctItem:=TAcctItem(bgAcct.BoldList.Elements[ARow-1]);
Canvas.FillRect(rect);
if AcctItem.Amount>100 then
Canvas.Font.Color:=clred
else
Canvas.Font.Color:=clblue;
Canvas.TextOut(Rect.Left,Rect.Top, FloatTostr(AcctItem.Amount));
end;
end;
procedure TFormMain.btnAmountClick(Sender: TObject);
var
AMount:Currency;
begin
if blhPerson.CurrentElement is TPerson then
begin
AMount:=(blhPerson.CurrentElement as TPerson).GetMonthAmount(2002, 12);
ShowMessage(floattostr(AMount));
end;
end;
procedure TFormMain.btnPasteClick(Sender: TObject);
begin
biPhoto.PasteFromClipboard;
end;
procedure TFormMain.btnLoadClick(Sender: TObject);
begin
with dlgOpen do
begin
if Assigned(biPhoto.Viewer) then
DefaultExt := biPhoto.Viewer.DefaultExtension;
if Execute then
biPhoto.LoadFromFile(FileName);
end;
end;
procedure TFormMain.btnReportClick(Sender: TObject);
begin
//打印报表
ReportMoney.Preview;
end;
procedure TFormMain.btnQryClick(Sender: TObject);
begin
//查询
EditOCL(blhPerson);
end;
procedure TFormMain.EditOCL(Handler: TBoldListHandle);
begin
with TBoldOclPropEditForm.Create(Self) do
try
Context := Handler.RootHandle.BoldType;
OclExpr := Handler.Expression;
if ShowModal = mrOK then
begin
Handler.Expression := OCLExpr;
edtQry.Text:=OCLExpr;
end;
finally
Free;
end;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?