📄 dlgsectorsettings.pas
字号:
unit DlgSectorSettings;
{******************************************************************************}
{ Abakus VCL }
{ Property-editor to adjust SectorSettings }
{ }
{******************************************************************************}
{ e-Mail: support@abaecker.de , Web: http://www.abaecker.com }
{------------------------------------------------------------------------------}
{ (c) Copyright 1998..2001 A.Baecker, All rights Reserved }
{******************************************************************************}
{$I Abks.inc}
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, _GClass, AbCBitBt,
{$IFDEF D6} DesignWindows, DesignEditors, DesignIntf, {$ELSE} DsgnIntf, {$ENDIF}
AbNumEdit, _AbProc;
type
TSectorSettingsForm = class(TForm)
OkBtn: TBitBtn;
CancelBtn: TBitBtn;
Sector1ColorBtn: TAbColBitBtn;
Sector2ColorBtn: TAbColBitBtn;
Sector3ColorBtn: TAbColBitBtn;
Sector3FromEdit: TAbNumEdit;
Sector3ToEdit: TAbNumEdit;
Sector2FromEdit: TAbNumEdit;
Sector2ToEdit: TAbNumEdit;
Sector1FromEdit: TAbNumEdit;
Sector1ToEdit: TAbNumEdit;
ColorDialog1: TColorDialog;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
GroupBox1: TGroupBox;
PPT_RadioButton: TRadioButton;
Value_RadioButton: TRadioButton;
procedure Sector3FromEditValueChanged(Sender: TObject);
procedure Sector3ToEditValueChanged(Sender: TObject);
procedure Sector2FromEditValueChanged(Sender: TObject);
procedure Sector2ToEditValueChanged(Sender: TObject);
procedure Sector1FromEditValueChanged(Sender: TObject);
procedure Sector1ToEditValueChanged(Sender: TObject);
procedure Sector3ColorBtnClick(Sender: TObject);
procedure Sector2ColorBtnClick(Sender: TObject);
procedure Sector1ColorBtnClick(Sender: TObject);
procedure PPT_RadioButtonClick(Sender: TObject);
private
{ Private-Deklarationen }
procedure GetSettings;
public
{ Public-Deklarationen }
end;
TSectorSettingsEditor = class(TClassProperty)
public
procedure edit; override;
function GetAttributes: TPropertyAttributes; override;
//function GetValue: string; override;
end;
var
SectorSettingsForm: TSectorSettingsForm;
SectSettings : TSectorSettings;
AbAnlgGC : TAbAnalogGControl;
implementation
{$R *.DFM}
procedure TSectorSettingsEditor.edit;
var
SectSettings2 : TSectorSettings;
TmpSectorSettings : TSectorSettings;
n : Integer;
begin
TmpSectorSettings := TSectorSettings.Create;
SectorSettingsForm := TSectorSettingsForm.Create(Application);
AbLoadFormPos(SectorSettingsForm);
try
with SectorSettingsForm do begin
SectSettings := TSectorSettings(GetOrdValue);
TmpSectorSettings.Assign(SectSettings);
AbAnlgGC := (GetComponent(0) as TAbAnalogGControl);
GetSettings;
if ShowModal = mrOK then begin
Modified;
for n := 1 to propCount - 1 do begin
SectSettings2 := TSectorSettings(GetOrdValueAt(n));
SectSettings2.Assign(SectSettings);
end;
end else begin
SectSettings.Assign(TmpSectorSettings);
end;
end;
finally
AbSaveFormPos(SectorSettingsForm);
TmpSectorSettings.Free;
SectorSettingsForm.Free;
end;
end;
function TSectorSettingsEditor.GetAttributes: TPropertyAttributes;
begin
// Result := [paMultiSelect, paDialog];
Result := [paMultiSelect, paSubProperties, paAutoUpdate, paDialog];
end;
{
function TSectorSettingsEditor.GetValue: string;
begin
result := '(TSectorSettings)';
end;
}
procedure TSectorSettingsForm.GetSettings;
begin
with SectSettings do begin
Sector1ColorBtn.ColorOff := Sector1Color;
Sector1ColorBtn.ColorOn := Sector1Color;
Sector2ColorBtn.ColorOff := Sector2Color;
Sector2ColorBtn.ColorOn := Sector2Color;
Sector3ColorBtn.ColorOff := Sector3Color;
Sector3ColorBtn.ColorOn := Sector3Color;
Label5.enabled := PPT_RadioButton.Checked;
Label6.enabled := PPT_RadioButton.Checked;
if PPT_RadioButton.Checked then begin
Sector1FromEdit.Value := Sector1From;
Sector1ToEdit.Value := Sector1To;
Sector2FromEdit.Value := Sector2From;
Sector2ToEdit.Value := Sector2To;
Sector3FromEdit.Value := Sector3From;
Sector3ToEdit.Value := Sector3To;
end else begin
Sector1FromEdit.Value := AbAnlgGC.SignalSettings.GetValue(Sector1From);
Sector1ToEdit.Value := AbAnlgGC.SignalSettings.GetValue(Sector1To);
Sector2FromEdit.Value := AbAnlgGC.SignalSettings.GetValue(Sector2From);
Sector2ToEdit.Value := AbAnlgGC.SignalSettings.GetValue(Sector2To);
Sector3FromEdit.Value := AbAnlgGC.SignalSettings.GetValue(Sector3From);
Sector3ToEdit.Value := AbAnlgGC.SignalSettings.GetValue(Sector3To);
end;
end;
end;
procedure TSectorSettingsForm.Sector3FromEditValueChanged(
Sender: TObject);
begin
if PPT_RadioButton.Checked then
SectSettings.Sector3From := Sector3FromEdit.ValueAsInt
else
SectSettings.Sector3From := AbAnlgGC.SignalSettings.GetPPT(Sector3FromEdit.ValueAsSingle);
GetSettings;
end;
procedure TSectorSettingsForm.Sector3ToEditValueChanged(
Sender: TObject);
begin
if PPT_RadioButton.Checked then
SectSettings.Sector3To := Sector3ToEdit.ValueAsInt
else
SectSettings.Sector3To := AbAnlgGC.SignalSettings.GetPPT(Sector3ToEdit.ValueAsSingle);
GetSettings;
end;
procedure TSectorSettingsForm.Sector2FromEditValueChanged(
Sender: TObject);
begin
if PPT_RadioButton.Checked then
SectSettings.Sector2From := Sector2FromEdit.ValueAsInt
else
SectSettings.Sector2From := AbAnlgGC.SignalSettings.GetPPT(Sector2FromEdit.ValueAsSingle);
GetSettings;
end;
procedure TSectorSettingsForm.Sector2ToEditValueChanged(
Sender: TObject);
begin
if PPT_RadioButton.Checked then
SectSettings.Sector2To := Sector2ToEdit.ValueAsInt
else
SectSettings.Sector2To := AbAnlgGC.SignalSettings.GetPPT(Sector2ToEdit.ValueAsSingle);
GetSettings;
end;
procedure TSectorSettingsForm.Sector1FromEditValueChanged(
Sender: TObject);
begin
if PPT_RadioButton.Checked then
SectSettings.Sector1From := Sector1FromEdit.ValueAsInt
else
SectSettings.Sector1From := AbAnlgGC.SignalSettings.GetPPT(Sector1FromEdit.ValueAsSingle);
GetSettings;
end;
procedure TSectorSettingsForm.Sector1ToEditValueChanged(
Sender: TObject);
begin
if PPT_RadioButton.Checked then
SectSettings.Sector1To := Sector1ToEdit.ValueAsInt
else
SectSettings.Sector1To := AbAnlgGC.SignalSettings.GetPPT(Sector1ToEdit.ValueAsSingle);
GetSettings;
end;
procedure TSectorSettingsForm.Sector3ColorBtnClick(Sender: TObject);
begin
ColorDialog1.Color := SectSettings.Sector3Color;
if ColorDialog1.Execute then begin
SectSettings.Sector3Color := ColorDialog1.Color;
GetSettings;
end;
end;
procedure TSectorSettingsForm.Sector2ColorBtnClick(Sender: TObject);
begin
ColorDialog1.Color := SectSettings.Sector2Color;
if ColorDialog1.Execute then begin
SectSettings.Sector2Color := ColorDialog1.Color;
GetSettings;
end;
end;
procedure TSectorSettingsForm.Sector1ColorBtnClick(Sender: TObject);
begin
ColorDialog1.Color := SectSettings.Sector1Color;
if ColorDialog1.Execute then begin
SectSettings.Sector1Color := ColorDialog1.Color;
GetSettings;
end;
end;
procedure TSectorSettingsForm.PPT_RadioButtonClick(Sender: TObject);
begin
GetSettings;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -