⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dlgsectorsettings.pas

📁 著名的虚拟仪表控件,包含全部源码, 可以在,delphi2007 下安装运行
💻 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 + -