📄 frxclass.pas
字号:
procedure BeforePrint; virtual;
procedure GetData; virtual;
procedure AfterPrint; virtual;
function GetComponentText: String; virtual;
function GetRealBounds: TfrxRect; virtual;
property OnAfterData: TfrxNotifyEvent read FOnAfterData write FOnAfterData;
property OnAfterPrint: TfrxNotifyEvent read FOnAfterPrint write FOnAfterPrint;
property OnBeforePrint: TfrxNotifyEvent read FOnBeforePrint write FOnBeforePrint;
property OnPreviewClick: TfrxPreviewClickEvent read FOnPreviewClick write FOnPreviewClick;
published
property Description;
end;
TfrxDialogComponent = class(TfrxReportComponent)
private
FComponent: TComponent;
procedure ReadLeft(Reader: TReader);
procedure ReadTop(Reader: TReader);
procedure WriteLeft(Writer: TWriter);
procedure WriteTop(Writer: TWriter);
protected
FImageIndex: Integer;
procedure DefineProperties(Filer: TFiler); override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Draw(Canvas: TCanvas; ScaleX, ScaleY, OffsetX, OffsetY: Extended); override;
property Component: TComponent read FComponent write FComponent;
end;
TfrxDialogControl = class(TfrxReportComponent)
private
FControl: TControl;
FOnClick: TfrxNotifyEvent;
FOnDblClick: TfrxNotifyEvent;
FOnEnter: TfrxNotifyEvent;
FOnExit: TfrxNotifyEvent;
FOnKeyDown: TfrxKeyEvent;
FOnKeyPress: TfrxKeyPressEvent;
FOnKeyUp: TfrxKeyEvent;
FOnMouseDown: TfrxMouseEvent;
FOnMouseMove: TfrxMouseMoveEvent;
FOnMouseUp: TfrxMouseEvent;
function GetColor: TColor;
function GetEnabled: Boolean;
procedure DoOnClick(Sender: TObject);
procedure DoOnDblClick(Sender: TObject);
procedure DoOnEnter(Sender: TObject);
procedure DoOnExit(Sender: TObject);
procedure DoOnKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure DoOnKeyPress(Sender: TObject; var Key: Char);
procedure DoOnKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure DoOnMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure DoOnMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
procedure DoOnMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure SetColor(const Value: TColor);
procedure SetEnabled(const Value: Boolean);
function GetCaption: String;
procedure SetCaption(const Value: String);
function GetHint: String;
procedure SetHint(const Value: String);
function GetTabStop: Boolean;
procedure SetTabStop(const Value: Boolean);
protected
procedure SetLeft(Value: Extended); override;
procedure SetTop(Value: Extended); override;
procedure SetWidth(Value: Extended); override;
procedure SetHeight(Value: Extended); override;
procedure SetParentFont(const Value: Boolean); override;
procedure SetVisible(Value: Boolean); override;
procedure SetParent(AParent: TfrxComponent); override;
procedure FontChanged(Sender: TObject); override;
procedure InitControl(AControl: TControl);
procedure SetName(const AName: TComponentName); override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Draw(Canvas: TCanvas; ScaleX, ScaleY, OffsetX, OffsetY: Extended); override;
property Caption: String read GetCaption write SetCaption;
property Color: TColor read GetColor write SetColor;
property Control: TControl read FControl write FControl;
property TabStop: Boolean read GetTabStop write SetTabStop default True;
property OnClick: TfrxNotifyEvent read FOnClick write FOnClick;
property OnDblClick: TfrxNotifyEvent read FOnDblClick write FOnDblClick;
property OnEnter: TfrxNotifyEvent read FOnEnter write FOnEnter;
property OnExit: TfrxNotifyEvent read FOnExit write FOnExit;
property OnKeyDown: TfrxKeyEvent read FOnKeyDown write FOnKeyDown;
property OnKeyPress: TfrxKeyPressEvent read FOnKeyPress write FOnKeyPress;
property OnKeyUp: TfrxKeyEvent read FOnKeyUp write FOnKeyUp;
property OnMouseDown: TfrxMouseEvent read FOnMouseDown write FOnMouseDown;
property OnMouseMove: TfrxMouseMoveEvent read FOnMouseMove write FOnMouseMove;
property OnMouseUp: TfrxMouseEvent read FOnMouseUp write FOnMouseUp;
published
property Left;
property Top;
property Width;
property Height;
property Font;
property GroupIndex;
property ParentFont;
property Enabled: Boolean read GetEnabled write SetEnabled default True;
property Hint: String read GetHint write SetHint;
property Visible;
end;
{$IFDEF FR_COM}
TfrxDataSet = class(TfrxDialogComponent, IfrxDataSet)
{$ELSE}
TfrxDataSet = class(TfrxDialogComponent)
{$ENDIF}
private
FCloseDataSource: Boolean;
FEnabled: Boolean;
FEof: Boolean;
FOpenDataSource: Boolean;
FRangeBegin: TfrxRangeBegin;
FRangeEnd: TfrxRangeEnd;
FRangeEndCount: Integer;
FReportRef: TfrxReport;
FUserName: String;
FOnCheckEOF: TfrxCheckEOFEvent;
FOnFirst: TNotifyEvent;
FOnNext: TNotifyEvent;
FOnPrior: TNotifyEvent;
FOnOpen: TNotifyEvent;
FOnClose: TNotifyEvent;
protected
FInitialized: Boolean;
FRecNo: Integer;
function GetDisplayText(Index: String): WideString; virtual;
function GetDisplayWidth(Index: String): Integer; virtual;
function GetFieldType(Index: String): TfrxFieldType; virtual;
function GetValue(Index: String): Variant; virtual;
procedure SetName(const NewName: TComponentName); override;
procedure SetUserName(const Value: String); virtual;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
{ Navigation methods }
procedure Initialize; virtual;
procedure Finalize; virtual;
procedure Open; virtual;
procedure Close; virtual;
procedure First; virtual;
procedure Next; virtual;
procedure Prior; virtual;
function Eof: Boolean; virtual;
{ Data access }
function FieldsCount: Integer; virtual;
function HasField(const fName: String): Boolean;
function IsBlobField(const fName: String): Boolean; virtual;
function RecordCount: Integer; virtual;
procedure AssignBlobTo(const fName: String; Obj: TObject); virtual;
procedure GetFieldList(List: TStrings); virtual;
property DisplayText[Index: String]: WideString read GetDisplayText;
property DisplayWidth[Index: String]: Integer read GetDisplayWidth;
property FieldType[Index: String]: TfrxFieldType read GetFieldType;
property Value[Index: String]: Variant read GetValue;
property CloseDataSource: Boolean read FCloseDataSource write FCloseDataSource;
{ OpenDataSource is kept for backward compatibility only }
property OpenDataSource: Boolean read FOpenDataSource write FOpenDataSource default True;
property RecNo: Integer read FRecNo;
property ReportRef: TfrxReport read FReportRef write FReportRef;
property OnClose: TNotifyEvent read FOnClose write FOnClose;
property OnOpen: TNotifyEvent read FOnOpen write FOnOpen;
published
property Enabled: Boolean read FEnabled write FEnabled default True;
property RangeBegin: TfrxRangeBegin read FRangeBegin write FRangeBegin default rbFirst;
property RangeEnd: TfrxRangeEnd read FRangeEnd write FRangeEnd default reLast;
property RangeEndCount: Integer read FRangeEndCount write FRangeEndCount default 0;
property UserName: String read FUserName write SetUserName;
property OnCheckEOF: TfrxCheckEOFEvent read FOnCheckEOF write FOnCheckEOF;
property OnFirst: TNotifyEvent read FOnFirst write FOnFirst;
property OnNext: TNotifyEvent read FOnNext write FOnNext;
property OnPrior: TNotifyEvent read FOnPrior write FOnPrior;
{$IFDEF FR_COM}
private { Interface section }
function Get_UserName(out Value: WideString): HResult; stdcall;
function Set_UserName(const Value: WideString): HResult; stdcall;
function Get_RangeBegin(out Value: frxRangeBegin): HResult; stdcall;
function Set_RangeBegin(Value: frxRangeBegin): HResult; stdcall;
function Get_RangeEndCount(out Value: Integer): HResult; stdcall;
function Set_RangeEndCount(Value: Integer): HResult; stdcall;
function Get_RangeEnd(out Value: frxRangeEnd): HResult; stdcall;
function Set_RangeEnd(Value: frxRangeEnd): HResult; stdcall;
function Get_FieldsCount(out Value: Integer): HResult; stdcall;
function Get_RecordsCount(out Value: Integer): HResult; stdcall;
function ValueOfField(const FieldName: WideString; out Value: OleVariant): HResult; stdcall;
function Get_CurrentRecordNo(out Value: Integer): HResult; stdcall;
function GoFirst: HResult; stdcall;
function GoNext: HResult; stdcall;
function GoPrior: HResult; stdcall;
{$ENDIF}
end;
{$IFDEF FR_COM}
TfrxUserDataSet = class(TfrxDataset, IfrxUserDataSet, IConnectionPointContainer)
private
FConnectionPoints: TConnectionPoints;
FConnectionPoint: TConnectionPoint;
FEvent: IfrxUserDataSetEvents;
{$ELSE}
TfrxUserDataSet = class(TfrxDataset)
private
{$ENDIF}
FFields: TStrings;
FOnGetValue: TfrxGetValueEvent;
procedure SetFields(const Value: TStrings);
protected
function GetDisplayText(Index: String): WideString; override;
function GetValue(Index: String): Variant; override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
function FieldsCount: Integer; override;
procedure GetFieldList(List: TStrings); override;
published
property Fields: TStrings read FFields write SetFields;
property OnGetValue: TfrxGetValueEvent read FOnGetValue write FOnGetValue;
{$IFDEF FR_COM}
private
function IfrxUserDataSet.Get_Fields = IfrxUserDataSet_Get_Fields;
function IfrxUserDataSet.Set_Fields = IfrxUserDataSet_Set_Fields;
function IfrxUserDataSet.Get_Name = IfrxUserDataSet_Get_Name;
function IfrxUserDataSet.Set_Name = IfrxUserDataSet_Set_Name;
function IfrxUserDataSet_Get_Fields(out Value: WideString): HResult; stdcall;
function IfrxUserDataSet_Set_Fields(const Value: WideString): HResult; stdcall;
function IfrxUserDataSet_Get_Name(out Value: WideString): HResult; stdcall;
function IfrxUserDataSet_Set_Name(const Value: WideString): HResult; stdcall;
procedure EventSinkChanged(const Sink: IUnknown; Connecting: Boolean);
{ COM proxy event functions }
procedure COM_OnGetValueHandler(const VarName: String; var Value: Variant);
procedure COM_OnCheckEOFHandler(Sender: TObject; var EOF : Boolean);
procedure COM_OnFirstHandler(Sender: TObject);
procedure COM_OnNextHandler(Sender: TObject);
procedure COM_OnPrevHandler(Sender: TObject);
public
property ConnectionPoints: TConnectionPoints read FConnectionPoints implements IConnectionPointContainer;
{$ENDIF}
end;
TfrxCustomDBDataSet = class(TfrxDataSet)
private
FAliases: TStrings;
FFields: TStringList;
procedure SetFieldAliases(const Value: TStrings);
protected
property Fields: TStringList read FFields;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
function ConvertAlias(const fName: String): String;
function GetAlias(const fName: String): String;
function FieldsCount: Integer; override;
published
property CloseDataSource;
property FieldAliases: TStrings read FAliases write SetFieldAliases;
property OpenDataSource;
property OnClose;
property OnOpen;
end;
TfrxDBComponents = class(TComponent)
public
function GetDescription: String; virtual;
end;
TfrxCustomDatabase = class(TfrxDialogComponent)
protected
procedure BeforeConnect(var Value: Boolean);
procedure SetConnected(Value: Boolean); virtual;
procedure SetDatabaseName(const Value: String); virtual;
procedure SetLoginPrompt(Value: Boolean); virtual;
procedure SetParams(Value: TStrings); virtual;
function GetConnected: Boolean; virtual;
function GetDatabaseName: String; virtual;
function GetLoginPrompt: Boolean; virtual;
function GetParams: TStrings; virtual;
public
procedure SetLogin(const Login, Password: String); virtual;
property Connected: Boolean read GetConnected write SetConnected default False;
property DatabaseName: String read GetDatabaseName write SetDatabaseName;
property LoginPrompt: Boolean read GetLoginPrompt write SetLoginPrompt default True;
property Params: TStrings read GetParams write SetParams;
end;
TfrxComponentClass = class of TfrxComponent;
{ Report Objects }
TfrxFrameLine = class(TPersistent)
private
FFrame: TfrxFrame;
FColor: TColor;
FStyle: TfrxFrameStyle;
FWidth: Extended;
function IsColorStored: Boolean;
function IsStyleStored: Boolean;
function IsWidthStored: Boolean;
public
constructor Create(AFrame: TfrxFrame);
procedure Assign(Source: TPersistent); override;
function Diff(ALine: TfrxFrameLine; const LineName: String;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -