118 lines
2.6 KiB
ObjectPascal
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.
|