FastReport 包含一组常用控件,可以放置在 表内的对话表单上。它们如下:
TfrxLabelControl TfrxEditControl TfrxMemoControl TfrxButtonControl TfrxCheckBoxControl TfrxRadioButtonControl TfrxListBoxControl TfrxComboBoxControl TfrxDateEditControl TfrxImageControl TfrxBevelControl TfrxPanelControl TfrxGroupBoxControl TfrxBitBtnControl TfrxSpeedButtonControl TfrxMaskEditControl TfrxCheckListBoxControl
这些控件元素对应于 Delphi 组件面板标准控件。如果标准功能不能满足您的要求,您可以创建自己的通用控件并在 告中使用它。
所有公共控件的基本类是TfrxDialogControl在 frxClass 文件中声明的类:
TfrxDialogControl = class(TfrxReportComponent) protected procedure InitControl(AControl: TControl); public constructor Create(AOwner: TComponent); override; destructor Destroy; override; class function GetDescription: String; virtual; property Caption: String; property Color: TColor; property Control: TControl; property OnClick: TfrxNotifyEvent; property OnDblClick: TfrxNotifyEvent; property OnEnter: TfrxNotifyEvent; property OnExit: TfrxNotifyEvent; property OnKeyDown: TfrxKeyEvent; property OnKeyPress: TfrxKeyPressEvent; property OnKeyUp: TfrxKeyEvent; property OnMouseDown: TfrxMouseEvent; property OnMouseMove: TfrxMouseMoveEvent; property OnMouseUp: TfrxMouseEvent; published property Left; property Top; property Width; property Height; property Font; property ParentFont; property Enabled: Boolean; property Visible; end;
要创建您自己的控制元素,您应该从此类继承并至少覆盖构造函数和GetDescription方法。有必要创建公共控件并通过InitControl构造函数中的方法对其进行初始化。GetDescription方法是返回公共控件描述。从TfrxDialogControl类描述中可以看出,它已经在公共部分包含了大量的属性和方法。您需要将任何必要的属性/事件传输到公共控件的“已发布”部分,并且还需要创建新的属性,这对于您的元素是典型的。
公共控件的注册和删除是通过frxObjectsfrxDsgnIntf 文件中声明的全局对象方法执行的:
frxObjects.RegisterObject(ClassRef: TfrxComponentClass; ButtonBmp: TBitmap);frxObjects.Unregister(ClassRef: TfrxComponentClass);
在注册期间,您应该指定控件类名称及其图片。ButtonBmp 大小应为 16×16 像素。
例如,让我们检查通用控件的示例,它简化了标准 DelphiTBitBtn控件的功能。
uses frxClass, frxDsgnIntf, Buttons;type TfrxBitBtnControl = class(TfrxDialogControl) private FButton: TBitBtn; procedure SetKind(const Value: TBitBtnKind); function GetKind: TBitBtnKind; public constructor Create(AOwner: TComponent); override; class function GetDescription: String; override; property Button: TBitBtn read FButton; published { add new properties } property Kind: TBitBtnKind read GetKind write SetKind default bkCustom; { these properties are already declared in parent class } property Caption; property OnClick; property OnEnter; property OnExit; property OnKeyDown; property OnKeyPress; property OnKeyUp; property OnMouseDown; property OnMouseMove; property OnMouseUp; end;constructor TfrxBitBtnControl.Create(AOwner: TComponent);begin { default constructor } inherited; { create required common control } FButton := TBitBtn.Create(nil); FButton.Caption := 'BitBtn'; { initialize it } InitControl(FButton); { it will have such size by default } Width := 75; Height := 25;end;class function TfrxBitBtnControl.GetDescription: String;begin Result := 'BitBtn control';end;procedure TfrxBitBtnControl.SetKind(const Value: TBitBtnKind);begin FButton.Kind := Value;end;function TfrxBitBtnControl.GetKind: TBitBtnKind;begin Result := FButton.Kind;end;var Bmp: TBitmap;initialization Bmp := TBitmap.Create; {Load picture from resource. Of course, you should beforehand place it there.} Bmp.LoadFromResourceName(hInstance, 'frxBitBtnControl'); frxObjects.RegisterObject(TfrxBitBtnControl, Bmp);finalization frxObjects.Unregister(TfrxBitBtnControl); Bmp.Free;end.
如果您对 FastReport 感兴趣,欢迎加入 FastReport QQ 交流群:702295239
还想要更多吗可以点击阅读【FastReport 表2021最新资源盘点】,查找需要的教程资源。上是FastReport .NET慧正在 火热销售中!>>查看价格详情
标签:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!