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

📄 demoprop.pas

📁 与系统的桌面工具栏同样的功能 。 developed in delphi
💻 PAS
字号:
unit DemoProp;

interface

uses
  Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,
  Buttons, ComCtrls, ExtCtrls;

type
  TPropDlg = class(TForm)
    pnlPages: TPanel;
    pnlBottom: TPanel;
    pgcMain: TPageControl;
    tabPosition: TTabSheet;
    grpEdge: TGroupBox;
    optEdgeFloat: TRadioButton;
    optEdgeLeft: TRadioButton;
    optEdgeTop: TRadioButton;
    optEdgeRight: TRadioButton;
    optEdgeBottom: TRadioButton;
    grpFlags: TGroupBox;
    chkAllowFloat: TCheckBox;
    chkAllowLeft: TCheckBox;
    chkAllowTop: TCheckBox;
    chkAllowRight: TCheckBox;
    chkAllowBottom: TCheckBox;
    tabAppearance: TTabSheet;
    tabSizing: TTabSheet;
    tabDocking: TTabSheet;
    tabFloating: TTabSheet;
    grpFloatCoords: TGroupBox;
    lblFloatLeft: TLabel;
    edtFloatLeft: TEdit;
    updFloatLeft: TUpDown;
    lblFloatTop: TLabel;
    edtFloatTop: TEdit;
    updFloatTop: TUpDown;
    lblFloatRight: TLabel;
    edtFloatRight: TEdit;
    updFloatRight: TUpDown;
    lblFloatBottom: TLabel;
    edtFloatBottom: TEdit;
    updFloatBottom: TUpDown;
    grpMinMax: TGroupBox;
    lblMinWidth: TLabel;
    edtMinWidth: TEdit;
    updMinWidth: TUpDown;
    lblMinHeight: TLabel;
    edtMinHeight: TEdit;
    updMinHeight: TUpDown;
    lblMaxWidth: TLabel;
    edtMaxWidth: TEdit;
    updMaxWidth: TUpDown;
    lblMaxHeight: TLabel;
    edtMaxHeight: TEdit;
    updMaxHeight: TUpDown;
    lblAuthor: TLabel;
    lblEMail: TLabel;
    lblHomePage: TLabel;
    btnApply: TButton;
    btnCancel: TButton;
    lblProductName: TLabel;
    grpMainWnd: TGroupBox;
    chkAlwaysOnTop: TCheckBox;
    chkAutohide: TCheckBox;
    grpTaskEntry: TRadioGroup;
    tabSliding: TTabSheet;
    grpSlideEffect: TGroupBox;
    lblSlideTime: TLabel;
    sldSlideTime: TTrackBar;
    lblFaster: TLabel;
    lblSlower: TLabel;
    chkSlideEffect: TCheckBox;
    grpSizeInc: TGroupBox;
    lblHorzSizeInc: TLabel;
    edtHorzSizeInc: TEdit;
    updHorzSizeInc: TUpDown;
    lblVertSizeInc: TLabel;
    edtVertSizeInc: TEdit;
    updVertSizeInc: TUpDown;
    lblZeroIncHint: TLabel;
    grpVertDock: TGroupBox;
    grpHorzDock: TGroupBox;
    edtHorzDockSize: TEdit;
    updHorzDockSize: TUpDown;
    edtVertDockSize: TEdit;
    updVertDockSize: TUpDown;
    edtMinVertDockSize: TEdit;
    updMinVertDockSize: TUpDown;
    edtMaxVertDockSize: TEdit;
    updMaxVertDockSize: TUpDown;
    edtMinHorzDockSize: TEdit;
    updMinHorzDockSize: TUpDown;
    edtMaxHorzDockSize: TEdit;
    updMaxHorzDockSize: TUpDown;
    lblMinVertDockSize: TLabel;
    lblVertDockSize: TLabel;
    lblMaxVertDockSize: TLabel;
    lblMinHorzDockSize: TLabel;
    lblHorzDockSize: TLabel;
    lblmaxHorzDockSize: TLabel;
    tabRegistry: TTabSheet;
    grpSettingsLocation: TGroupBox;
    optCurrentUser: TRadioButton;
    optLocalMachine: TRadioButton;
    lblKeyName: TLabel;
    edtKeyName: TEdit;
    btnLoad: TButton;
    btnSave: TButton;
    procedure FormCreate(Sender: TObject);
    procedure btnApplyClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure chkSlideEffectClick(Sender: TObject);
    procedure btnLoadClick(Sender: TObject);
    procedure btnSaveClick(Sender: TObject);
  private
    procedure InitDialog;
    procedure ApplyChanges;
  end;

var
  PropDlg: TPropDlg;

implementation

uses Dialogs, Demo, AppBar;

{$R *.DFM}

procedure TPropDlg.FormCreate(Sender: TObject);
begin
  InitDialog;
end;

procedure TPropDlg.btnApplyClick(Sender: TObject);
begin
  ApplyChanges;
end;

procedure TPropDlg.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
end;

procedure TPropDlg.chkSlideEffectClick(Sender: TObject);
begin
  sldSlideTime.Enabled := chkSlideEffect.Checked;
  lblSlideTime.Enabled := chkSlideEffect.Checked;
  lblFaster.Enabled    := chkSlideEffect.Checked;
  lblSlower.Enabled    := chkSlideEffect.Checked;
end;

procedure TPropDlg.btnLoadClick(Sender: TObject);
var
  bSuccess : Boolean;
begin
  // Set RootKey and KeyName properties
  if optCurrentUser.Checked then
    DemoBar.RootKey := HKEY_CURRENT_USER
  else if optLocalMachine.Checked then
    DemoBar.RootKey := HKEY_LOCAL_MACHINE;
  DemoBar.KeyName := edtKeyName.Text;
  // Load settings from the registry
  bSuccess := DemoBar.LoadSettings;
  // Show the operation result
  if bSuccess then
    MessageDlg('Settings successfully loaded.', mtInformation, [mbOk], 0)
  else
    MessageDlg('Failed to load settings.', mtWarning, [mbOk], 0);
  // Re-init dialog
  InitDialog;
end;

procedure TPropDlg.btnSaveClick(Sender: TObject);
var
  bSuccess : Boolean;
begin
  // Set RootKey and KeyName properties
  if optCurrentUser.Checked then
    DemoBar.RootKey := HKEY_CURRENT_USER
  else if optLocalMachine.Checked then
    DemoBar.RootKey := HKEY_LOCAL_MACHINE;
  DemoBar.KeyName := edtKeyName.Text;
  // Save settings into the registry
  bSuccess := DemoBar.SaveSettings;
  // Show the operation result
  if bSuccess then
    MessageDlg('Settings successfully saved.', mtInformation, [mbOk], 0)
  else
    MessageDlg('Failed to save settings.', mtWarning, [mbOk], 0)
end;

procedure TPropDlg.InitDialog;
begin
  // Appearance Page
  chkAlwaysOnTop.Checked := DemoBar.AlwaysOnTop;
  chkAutoHide.Checked    := DemoBar.AutoHide;
  grpTaskEntry.ItemIndex := Ord(DemoBar.TaskEntry);

  // Position Page
  optEdgeFloat.Checked  := (DemoBar.Edge = abeFloat);
  optEdgeLeft.Checked   := (DemoBar.Edge = abeLeft);
  optEdgeTop.Checked    := (DemoBar.Edge = abeTop);
  optEdgeRight.Checked  := (DemoBar.Edge = abeRight);
  optEdgeBottom.Checked := (DemoBar.Edge = abeBottom);

  chkAllowFloat.Checked  := (abfAllowFloat  in DemoBar.Flags);
  chkAllowLeft.Checked   := (abfAllowLeft   in DemoBar.Flags);
  chkAllowTop.Checked    := (abfAllowTop    in DemoBar.Flags);
  chkAllowRight.Checked  := (abfAllowRight  in DemoBar.Flags);
  chkAllowBottom.Checked := (abfAllowBottom in DemoBar.Flags);

  // Sizing Page
  updHorzSizeInc.Position := DemoBar.HorzSizeInc;
  updVertSizeInc.Position := DemoBar.VertSizeInc;

  // Docking Page
  updMinHorzDockSize.Position := DemoBar.MinHorzDockSize;
  updMinVertDockSize.Position := DemoBar.MinVertDockSize;
  updHorzDockSize.Position    := DemoBar.HorzDockSize;
  updVertDockSize.Position    := DemoBar.VertDockSize;
  updMaxHorzDockSize.Position := DemoBar.MaxHorzDockSize;
  updMaxVertDockSize.Position := DemoBar.MaxVertDockSize;

  // Floating Page
  updFloatLeft.Position   := DemoBar.FloatLeft;
  updFloatTop.Position    := DemoBar.FloatTop;
  updFloatRight.Position  := DemoBar.FloatRight;
  updFloatBottom.Position := DemoBar.FloatBottom;

  updMinWidth.Position  := DemoBar.MinWidth;
  updMinHeight.Position := DemoBar.MinHeight;
  updMaxWidth.Position  := DemoBar.MaxWidth;
  updMaxHeight.Position := DemoBar.MaxHeight;

  // Sliding Page
  chkSlideEffect.Checked := DemoBar.SlideEffect;
  sldSlideTime.Position  := DemoBar.SlideTime;
  sldSlideTime.Enabled   := chkSlideEffect.Checked;
  lblSlideTime.Enabled   := chkSlideEffect.Checked;
  lblFaster.Enabled      := chkSlideEffect.Checked;
  lblSlower.Enabled      := chkSlideEffect.Checked;

  // Registry Page
  optCurrentUser.Checked  := (DemoBar.RootKey = HKEY_CURRENT_USER);
  optLocalMachine.Checked := (DemoBar.RootKey = HKEY_LOCAL_MACHINE);
  edtKeyName.Text         := DemoBar.KeyName;
end;

procedure TPropDlg.ApplyChanges;
begin
  // Appearance Page
  DemoBar.AlwaysOnTop := chkAlwaysOnTop.Checked;
  DemoBar.AutoHide    := chkAutoHide.Checked;
  DemoBar.TaskEntry   := TAppBarTaskEntry(grpTaskEntry.ItemIndex);

  // Position Page
  if optEdgeFloat.Checked then
    DemoBar.Edge := abeFloat
  else if optEdgeLeft.Checked then
    DemoBar.Edge := abeLeft
  else if optEdgeTop.Checked then
    DemoBar.Edge := abeTop
  else if optEdgeRight.Checked then
    DemoBar.Edge := abeRight
  else if optEdgeBottom.Checked then
    DemoBar.Edge := abeBottom;

  if chkAllowFloat.Checked then
    DemoBar.Flags := DemoBar.Flags + [abfAllowFloat]
  else
    DemoBar.Flags := DemoBar.Flags - [abfAllowFloat];

  if chkAllowLeft.Checked then
    DemoBar.Flags := DemoBar.Flags + [abfAllowLeft]
  else
    DemoBar.Flags := DemoBar.Flags - [abfAllowLeft];

  if chkAllowTop.Checked then
    DemoBar.Flags := DemoBar.Flags + [abfAllowTop]
  else
    DemoBar.Flags := DemoBar.Flags - [abfAllowTop];

  if chkAllowRight.Checked then
    DemoBar.Flags := DemoBar.Flags + [abfAllowRight]
  else
    DemoBar.Flags := DemoBar.Flags - [abfAllowRight];

  if chkAllowBottom.Checked then
    DemoBar.Flags := DemoBar.Flags + [abfAllowBottom]
  else
    DemoBar.Flags := DemoBar.Flags - [abfAllowBottom];

  // Sizing Page
  DemoBar.HorzSizeInc := updHorzSizeInc.Position;
  DemoBar.VertSizeInc := updVertSizeInc.Position;

  // Docking Page
  DemoBar.MinHorzDockSize := updMinHorzDockSize.Position;
  DemoBar.MinVertDockSize := updMinVertDockSize.Position;
  DemoBar.HorzDockSize    := updHorzDockSize.Position;
  DemoBar.VertDockSize    := updVertDockSize.Position;
  DemoBar.MaxHorzDockSize := updMaxHorzDockSize.Position;
  DemoBar.MaxVertDockSize := updMaxVertDockSize.Position;

  // Floating Page
  DemoBar.FloatLeft   := updFloatLeft.Position;
  DemoBar.FloatTop    := updFloatTop.Position;
  DemoBar.FloatRight  := updFloatRight.Position;
  DemoBar.FloatBottom := updFloatBottom.Position;

  DemoBar.MinWidth  := updMinWidth.Position;
  DemoBar.MinHeight := updMinHeight.Position;
  DemoBar.MaxWidth  := updMaxWidth.Position;
  DemoBar.MaxHeight := updMaxHeight.Position;

  // Sliding Page
  DemoBar.SlideEffect := chkSlideEffect.Checked;
  DemoBar.SlideTime   := sldSlideTime.Position;

  // Registry Page
  if optCurrentUser.Checked then
    DemoBar.RootKey := HKEY_CURRENT_USER
  else if optLocalMachine.Checked then
    DemoBar.RootKey := HKEY_LOCAL_MACHINE;
  DemoBar.KeyName := edtKeyName.Text;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -