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

📄 sfunit.pas

📁 AlphaControls是一个Delphi标准控件的集合
💻 PAS
字号:
unit sFUnit;
interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, sHintManager, ExtCtrls, sConst, sGraphUtils,
  ShellApi, ExtDlgs, ImgList, sUtils, Menus, ComCtrls, Buttons;

type
  TFDesigner = class(TForm)
    OpenPictureDialog1: TOpenPictureDialog;
    FontDialog1: TFontDialog;
    ImageList1: TImageList;
    sHintManager1: TsHintManager;
    PopupMenu1: TPopupMenu;
    Gotohomesite1: TMenuItem;
    Feedback1: TMenuItem;
    sComboBox4: TComboBox;
    Label1: TLabel;
    sComboBox1: TComboBox;
    Label2: TLabel;
    sTrackBar1: TTrackBar;
    sTrackBar6: TTrackBar;
    sTrackBar2: TTrackBar;
    sTrackBar3: TTrackBar;
    sTrackBar4: TTrackBar;
    sTrackBar5: TTrackBar;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    sTrackBar21: TTrackBar;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    GroupBox1: TGroupBox;
    sCheckBox1: TCheckBox;
    sColor6: TPanel;
    sColorSelect6: TSpeedButton;
    sTrackBar9: TTrackBar;
    Label12: TLabel;
    sTrackBar10: TTrackBar;
    Label13: TLabel;
    sTrackBar11: TTrackBar;
    Label14: TLabel;
    sMemo1: TMemo;
    Label15: TLabel;
    sColor4: TPanel;
    sColorSelect4: TSpeedButton;
    sColor5: TPanel;
    sColorSelect5: TSpeedButton;
    Panel3: TPanel;
    SpeedButton3: TSpeedButton;
    GroupBox2: TGroupBox;
    sTrackBar12: TTrackBar;
    Label17: TLabel;
    sColor1: TPanel;
    sColorSelect1: TSpeedButton;
    Panel2: TPanel;
    sSpeedButton1: TSpeedButton;
    BitBtn1: TBitBtn;
    ColorDialog1: TColorDialog;
    Panel1: TPanel;
    SpeedButton1: TSpeedButton;
    sSpinEdit2: TEdit;
    sColor2: TPanel;
    sColorSelect2: TSpeedButton;
    TrackBar1: TTrackBar;
    Label16: TLabel;
    TrackBar2: TTrackBar;
    Label18: TLabel;
    procedure sComboBox1Change(Sender: TObject);
    procedure sMemo1Change(Sender: TObject);
    procedure sTrackBar1Change(Sender: TObject);
    procedure sTrackBar2Change(Sender: TObject);
    procedure sTrackBar3Change(Sender: TObject);
    procedure sTrackBar4Change(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure sSpinEdit2Change(Sender: TObject);
    procedure sTrackBar5Change(Sender: TObject);
    procedure sTrackBar6Change(Sender: TObject);
    procedure sTrackBar9Change(Sender: TObject);
    procedure sTrackBar10Change(Sender: TObject);
    procedure sTrackBar11Change(Sender: TObject);
    procedure sSpeedButton2Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure sComboBox4Change(Sender: TObject);
    procedure Gotohomesite1Click(Sender: TObject);
    procedure Feedback1Click(Sender: TObject);
    procedure sTrackBar21Change(Sender: TObject);
    procedure sCheckBox1Click(Sender: TObject);
    procedure sColorSelect6Click(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
    procedure sColorSelect4Click(Sender: TObject);
    procedure sColorSelect1Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure sSpeedButton1Click(Sender: TObject);
    procedure sColorSelect2Click(Sender: TObject);
    procedure sColorSelect5Click(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure TrackBar2Change(Sender: TObject);
    procedure TrackBar1Change(Sender: TObject);
    procedure sTrackBar12Change(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure SetPanelColor(Panel : TPanel; c : TColor);
    procedure ChangeColor(Button: TPanel);
    procedure InitControls(Manager : TsHintManager);
    procedure LoadPreserved(i : integer);
  end;


procedure CreateEditorForm;
function GetHintManager : TsHintManager;
function OpenDesigner : TsHintManager;
procedure KillForm;

var
  FDesigner: TFDesigner;

implementation

uses sGradBuilder, sStylePassive;

{$R *.dfm}

procedure CreateEditorForm;
begin
  dec(sHintManager.ActiveManagers);
  Application.CreateForm(TFDesigner, FDesigner);
end;

function OpenDesigner : TsHintManager;
begin
  FDesigner.ShowModal;
  Result := FDesigner.sHintManager1;
end;

function GetHintManager : TsHintManager;
begin
  if Assigned(FDesigner) and Assigned(FDesigner.sHintManager1) then begin
    Result := FDesigner.sHintManager1;
  end
  else begin
    Result := nil;
  end;
end;

procedure KillForm;
begin
  if Assigned(FDesigner) then begin
    FDesigner.Release;
    inc(sHintManager.ActiveManagers);
  end;
end;

procedure TFDesigner.sComboBox1Change(Sender: TObject);
begin
  sHintManager1.Style := aHintStyles[sComboBox1.ItemIndex];
end;

procedure TFDesigner.sMemo1Change(Sender: TObject);
begin
  Hint := sMemo1.Text;
end;

procedure TFDesigner.sTrackBar1Change(Sender: TObject);
begin
  sHintManager1.BevelWidth := sTrackBar1.Position;
end;

procedure TFDesigner.sTrackBar2Change(Sender: TObject);
begin
  sHintManager1.ExOffset := sTrackBar2.Position;
end;

procedure TFDesigner.sTrackBar3Change(Sender: TObject);
begin
  sHintManager1.MarginH := sTrackBar3.Position;
end;

procedure TFDesigner.sTrackBar4Change(Sender: TObject);
begin
  sHintManager1.MarginV := sTrackBar4.Position;
end;

procedure TFDesigner.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  HintWindowClass := THintWindow;
end;

procedure TFDesigner.sSpinEdit2Change(Sender: TObject);
begin
  if sSpinEdit2.Text = '' then sSpinEdit2.Text := '0';
  try
    sHintManager1.PauseHide := StrToInt(sSpinEdit2.Text);
  except
    sSpinEdit2.Text := '5000';
  end;
end;

procedure TFDesigner.sTrackBar5Change(Sender: TObject);
begin
  sHintManager1.Radius := sTrackBar5.Position;
end;

procedure TFDesigner.sTrackBar6Change(Sender: TObject);
begin
  sHintManager1.Blur := sTrackBar6.Position;
end;

procedure TFDesigner.sTrackBar9Change(Sender: TObject);
begin
  sHintManager1.sStyle.Shadow.Blur := sTrackBar9.Position;
end;

procedure TFDesigner.sTrackBar10Change(Sender: TObject);
begin
  sHintManager1.sStyle.Shadow.Offset := sTrackBar10.Position;
end;

procedure TFDesigner.sTrackBar11Change(Sender: TObject);
begin
  sHintManager1.sStyle.Shadow.Transparency := sTrackBar11.Position;
end;

procedure TFDesigner.sSpeedButton2Click(Sender: TObject);
begin
  ShellExecute(Application.Handle, 'open', PChar('http://sstyle2002.narod.ru'), nil, nil, ord(soDefault));
end;

procedure TFDesigner.FormShow(Sender: TObject);
begin
  sComboBox4.ItemIndex := ord(sHintManager1.PreDefinitions);
  InitControls(sHintManager1);
end;

procedure TFDesigner.InitControls(Manager: TsHintManager);
begin
    sComboBox1.ItemIndex := ord(Manager.Style);
    sTrackBar1.Position := Manager.BevelWidth;
    sTrackBar2.Position := Manager.ExOffset;
    sTrackBar3.Position := Manager.MarginH;
    sTrackBar4.Position := Manager.MarginV;
    sTrackBar21.Position := Manager.MaxWidth;
    sSpinEdit2.Text := IntToStr(Manager.PauseHide);
    sTrackBar5.Position := Manager.Radius;
    sTrackBar6.Position := Manager.Blur;

    OpenPictureDialog1.FileName := Manager.sStyle.Background.Image.ImageName;
    sTrackBar12.Position := Manager.sStyle.Painting.Transparency;

    SetPanelColor(sColor1, Manager.sStyle.Painting.Color);

    TrackBar2.Position := Manager.sStyle.Background.Gradient.Percent;
    TrackBar1.Position := Manager.sStyle.Background.Image.Percent;

    SetPanelColor(sColor4, Manager.sStyle.Painting.ColorBorderTop);
    SetPanelColor(sColor5, Manager.sStyle.Painting.ColorBorderBottom);

    sTrackBar9.Position := Manager.sStyle.Shadow.Blur;
    sTrackBar10.Position := Manager.sStyle.Shadow.Offset;
    sTrackBar11.Position := Manager.sStyle.Shadow.Transparency;
    sCheckBox1.Checked := Manager.sStyle.Shadow.Enabled;

    SetPanelColor(sColor6, Manager.sStyle.Shadow.Color);

    FontDialog1.Font.Assign(Manager.Font);
end;

procedure TFDesigner.LoadPreserved(i: integer);
begin
  sHintManager1.PreDefinitions := asHintsPredefinitions[i];
  InitControls(sHintManager1);
end;

procedure TFDesigner.sComboBox4Change(Sender: TObject);
begin
  sHintManager1.PreDefinitions := asHintsPredefinitions[sComboBox4.ItemIndex];
  InitControls(sHintManager1);
end;

procedure TFDesigner.Gotohomesite1Click(Sender: TObject);
begin
  ShellExecute(Application.Handle, 'open', PChar('http://sstyle.swrus.com'), nil, nil, ord(soDefault));
end;

procedure TFDesigner.Feedback1Click(Sender: TObject);
begin
  ShellExecute(Application.Handle, 'open', PChar('mailto:sstyle@sstyle.swrus.com?Subject=TsHintManager'), nil, nil, ord(soDefault));
end;

procedure TFDesigner.sTrackBar21Change(Sender: TObject);
begin
  sHintManager1.MaxWidth := sTrackBar21.Position;
end;

procedure TFDesigner.sCheckBox1Click(Sender: TObject);
begin
  sHintManager1.sStyle.Shadow.Enabled := sCheckBox1.Checked;
end;

procedure TFDesigner.sColorSelect6Click(Sender: TObject);
begin
  ChangeColor(sColor6);
  sHintManager1.sStyle.Shadow.Color := sColor6.Color;
end;

procedure TFDesigner.SpeedButton3Click(Sender: TObject);
begin
  if FontDialog1.Execute then begin
    sHintManager1.Font.Assign(FontDialog1.Font);
  end;
end;

procedure TFDesigner.sColorSelect4Click(Sender: TObject);
begin
  ChangeColor(sColor4);
  sHintManager1.sStyle.Painting.ColorBorderTop := sColor4.Color;
end;

procedure TFDesigner.sColorSelect1Click(Sender: TObject);
begin
  ChangeColor(sColor1);
  sHintManager1.sStyle.Painting.Color := sColor1.Color;
  sComboBox4.ItemIndex := ord(sHintManager1.PreDefinitions);
end;

procedure TFDesigner.BitBtn1Click(Sender: TObject);
begin
  Close;
end;

procedure TFDesigner.sSpeedButton1Click(Sender: TObject);
begin
  if OpenPictureDialog1.Execute then begin
    Manager.sStyle.Background.Image.ImageName := OpenPictureDialog1.FileName;
    sComboBox4.ItemIndex := ord(sHintManager1.PreDefinitions);
  end;
end;

procedure TFDesigner.ChangeColor(Button: TPanel);
var
  c : TColor;
begin
  ColorDialog1.Color := Button.Color;
  if ColorDialog1.Execute then begin
    c := ColorToRGB(ColorDialog1.Color);
    if (GetRValue(C) + GetGValue(C) + GetBValue(C)) / 3 > 129 then begin
      Button.Font.Color := clBlack;
    end
    else begin
      Button.Font.Color := clWhite;
    end;
    Button.Color := C;
  end;
end;

procedure TFDesigner.sColorSelect2Click(Sender: TObject);
begin
  sGradBuilder.CreateEditorForm;
  try
    GradBuilder.CurrentGradient := sHintManager1.sStyle.Background.Gradient;
    GradBuilder.LoadFromArray(sHintManager1.sStyle.Background.Gradient.FGradArray);
    GradBuilder.ShowModal;
  finally
    sGradBuilder.KillForm;
  end;
  sComboBox4.ItemIndex := ord(sHintManager1.PreDefinitions);
end;

procedure TFDesigner.sColorSelect5Click(Sender: TObject);
begin
  ChangeColor(sColor5);
  sHintManager1.sStyle.Painting.ColorBorderBottom := sColor5.Color;
end;

procedure TFDesigner.SetPanelColor(Panel: TPanel; c: TColor);
var
  nc : TColor;
begin
  nc := ColorToRGB(C);
  Panel.Color := nc;
  if (GetRValue(nC) + GetGValue(nC) + GetBValue(nC)) / 3 > 129 then begin
    Panel.Font.Color := clBlack;
  end
  else begin
    Panel.Font.Color := clWhite;
  end;
end;

procedure TFDesigner.SpeedButton1Click(Sender: TObject);
begin
  ShellExecute(Application.Handle, 'open', PChar('http://sstyle.swrus.com'), nil, nil, ord(soDefault));
end;

procedure TFDesigner.TrackBar2Change(Sender: TObject);
begin
  sHintManager1.sStyle.Background.Gradient.Percent := TrackBar2.Position;
  TrackBar1.Position := sHintManager1.sStyle.Background.Image.Percent;
  sComboBox4.ItemIndex := ord(sHintManager1.PreDefinitions);
end;

procedure TFDesigner.TrackBar1Change(Sender: TObject);
begin
  sHintManager1.sStyle.Background.Image.Percent := TrackBar1.Position;
  TrackBar2.Position := sHintManager1.sStyle.Background.Gradient.Percent;
  sComboBox4.ItemIndex := ord(sHintManager1.PreDefinitions);
end;

procedure TFDesigner.sTrackBar12Change(Sender: TObject);
begin
  sHintManager1.sStyle.Painting.Transparency := sTrackBar12.Position;
  sComboBox4.ItemIndex := ord(sHintManager1.PreDefinitions);
end;

end.

⌨️ 快捷键说明

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