FastReport_2022_VCL/Source/frxGaugeDialogControl.pas
2024-01-01 16:13:08 +01:00

118 lines
2.6 KiB
ObjectPascal

{******************************************}
{ }
{ FastReport VCL }
{ Gauge Panel VCL Component }
{ }
{ Copyright (c) 1998-2021 }
{ by Fast Reports Inc. }
{ }
{******************************************}
unit frxGaugeDialogControl;
interface
{$I frx.inc}
uses
Classes, ExtCtrls, Types, Controls, Messages,
frxGaugePanel, frxGauge, frxClass;
type
{$IFDEF DELPHI16}
[ComponentPlatformsAttribute(pidWin32 or pidWin64)]
{$ENDIF}
TfrxGaugeDialogControls = class(TComponent) // fake component
end;
TfrxBaseGaugeControl = class(TfrxDialogControl)
private
protected
FBaseGauge: TfrxBaseGaugePanel;
procedure CreateGauge; virtual; abstract;
public
constructor Create(AOwner: TComponent); override;
published
property OnClick;
property OnDblClick;
property OnEnter;
property OnExit;
property OnKeyDown;
property OnKeyPress;
property OnKeyUp;
property OnMouseDown;
property OnMouseMove;
property OnMouseUp;
end;
TfrxGaugeControl = class(TfrxBaseGaugeControl)
private
function GetGauge: TfrxGauge;
protected
procedure CreateGauge; override;
public
published
property Gauge: TfrxGauge read GetGauge;
end;
TfrxIntervalGaugeControl = class(TfrxBaseGaugeControl)
private
function GetGauge: TfrxIntervalGauge;
protected
procedure CreateGauge; override;
public
published
property Gauge: TfrxIntervalGauge read GetGauge;
end;
implementation
uses SysUtils, frxDsgnIntf, frxGaugeControlRTTI;
{ TfrxBaseGaugeControl }
constructor TfrxBaseGaugeControl.Create(AOwner: TComponent);
begin
inherited;
CreateGauge;
InitControl(FBaseGauge);
end;
{ TfrxGaugeControl }
procedure TfrxGaugeControl.CreateGauge;
begin
FBaseGauge := TfrxGaugePanel.Create(nil);
end;
function TfrxGaugeControl.GetGauge: TfrxGauge;
begin
Result := TfrxGaugePanel(FBaseGauge).Gauge;
end;
{ TfrxIntervalGaugeControl }
procedure TfrxIntervalGaugeControl.CreateGauge;
begin
FBaseGauge := TfrxIntervalGaugePanel.Create(nil);
end;
function TfrxIntervalGaugeControl.GetGauge: TfrxIntervalGauge;
begin
Result := TfrxIntervalGaugePanel(FBaseGauge).Gauge;
end;
initialization
{$IFDEF DELPHI16}
StartClassGroup(TControl);
ActivateClassGroup(TControl);
GroupDescendentsWith(TfrxGaugeDialogControls, TControl);
{$ENDIF}
frxObjects.RegisterObject1(TfrxGaugeControl, nil, '', '', 0, 70);
frxObjects.RegisterObject1(TfrxIntervalGaugeControl, nil, '', '', 0, 70);
end.