📄 sfunit.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 + -