📄 uskinform.pas
字号:
unit uSkinForm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, extctrls,
bsSkinData, bsfilectrl, bsSkinCtrls, bsSkinTabs, bsSkinBoxCtrls,
BusinessSkinForm;
type
TBaseSkinForm = class(TForm)
private
FSkinFileName: string;
procedure SetSkinFileName(const Value: string);
procedure Init(ASkinFileName: string);
protected
bsBusinessSkinForm1: TbsBusinessSkinForm;
bsSkinData1: TbsSkinData;
public
constructor Create(Aowner: TComponent); override;
destructor Destroy; override;
published
property SkinFileName: string read FSkinFileName write SetSkinFileName;
end;
implementation
{ TBaseSkinForm }
{ TBaseSkinForm }
constructor TBaseSkinForm.Create(Aowner: TComponent);
begin
inherited;
bsSkinData1 := TbsSkinData.Create(Self);
bsBusinessSkinForm1 := TbsBusinessSkinForm.Create(self);
bsBusinessSkinForm1.SkinData := bsSkinData1;
if self.BorderStyle = bsDialog then
bsBusinessSkinForm1.BorderIcons := [biSystemMenu];
end;
destructor TBaseSkinForm.Destroy;
begin
bsBusinessSkinForm1.Free;
bsSkinData1.Free;
inherited;
end;
procedure TBaseSkinForm.Init(ASkinFileName: string);
var
i: integer;
F: TComponent;
FName: string;
begin
bsSkinData1.LoadFromCompressedFile(ASkinFileName);
for i := Self.ComponentCount - 1 downto 0 do
begin
if Self.Components[i] is TbsSkinControl then
(Self.Components[i] as TbsSkinControl).SkinData := bsSkinData1;
if Self.Components[i] is TbsSkinCustomEdit then
(Self.Components[i] as TbsSkinCustomEdit).SkinData := bsSkinData1;
if Self.Components[i] is TbsSkinMemo then
(Self.Components[i] as TbsSkinMemo).SkinData := bsSkinData1;
if Self.Components[i] is TbsSkinMemo2 then
(Self.Components[i] as TbsSkinMemo2).SkinData := bsSkinData1;
if Self.Components[i] is TbsSkinCustomListView then
(Self.Components[i] as TbsSkinCustomListView).SkinData := bsSkinData1;
if Self.Components[i] is TbsGraphicSkinControl then
(Self.Components[i] as TbsGraphicSkinControl).SkinData := bsSkinData1;
if Self.Components[i] is TbsSkinPageControl then
(Self.Components[i] as TbsSkinPageControl).SkinData := bsSkinData1;
///////
if Self.Components[i] is TLabel then
(Self.Components[i] as TLabel).Transparent := true;
//////////////
{
if Self.Components[i] is TButton then
begin
with TbsSkinButton.Create(Self) do
begin
F := Self.Components[i];
FName := f.Name;
OnClick := (F as TButton).OnClick;
Caption := (F as TButton).Caption;
Parent := (F as TButton).Parent;
Tag := (F as TButton).Tag;
SetBounds((F as TButton).Left - 10, (F as TButton).Top, (F as TButton).Width, (F as TButton).Height);
SkinData := bsSkinData1;
FreeAndNil(F);
Name := FName;
end;
end;
if Self.Components[i] is TGroupBox then
begin
with TbsSkinGroupBox.Create(Self) do
begin
F := Self.Components[i];
FName := f.Name;
Caption := (F as TGroupBox).Caption;
OnClick := (F as TGroupBox).OnClick;
Caption := (F as TGroupBox).Caption;
Parent := (F as TGroupBox).Parent;
Tag := (F as TGroupBox).Tag;
SetBounds((F as TGroupBox).Left - 10, (F as TGroupBox).Top, (F as TGroupBox).Width, (F as TGroupBox).Height);
SkinData := bsSkinData1;
FreeAndNil(F);
Name := FName;
end;
end;
if Self.Components[i] is TPanel then
begin
with TbsSkinPanel.Create(Self) do
begin
F := Self.Components[i];
FName := f.Name;
Caption := (F as TPanel).Caption;
OnClick := (F as TPanel).OnClick;
Caption := (F as TPanel).Caption;
Parent := (F as TPanel).Parent;
Tag := (F as TPanel).Tag;
SetBounds((F as TPanel).Left - 10, (F as TPanel).Top, (F as TPanel).Width, (F as TPanel).Height);
SkinData := bsSkinData1;
FreeAndNil(F);
Name := FName;
end;
end;
////
if Self.Components[i] is TEdit then
begin
if (Self.Components[i] as TEdit).PasswordChar = #0 then
begin
with TbsSkinEdit.Create(Self) do
begin
F := Self.Components[i];
FName := f.Name;
Text := (F as TEdit).Text;
Parent := (F as TEdit).Parent;
Tag := (F as TEdit).Tag;
OnKeyPress := (F as TEdit).OnKeyPress;
OnKeyDown := (F as TEdit).OnKeyDown;
SetBounds((F as TEdit).Left - 10, (F as TEdit).Top, (F as TEdit).Width, (F as TEdit).Height);
SkinData := bsSkinData1;
FreeAndNil(F);
Name := FName;
end;
end
else
begin
with TbsSkinPasswordEdit.Create(Self) do
begin
F := Self.Components[i];
FName := f.Name;
Text := (F as TEdit).Text;
Parent := (F as TEdit).Parent;
Tag := (F as TEdit).Tag;
OnKeyPress := (F as TEdit).OnKeyPress;
OnKeyDown := (F as TEdit).OnKeyDown;
SetBounds((F as TEdit).Left - 10, (F as TEdit).Top, (F as TEdit).Width, (F as TEdit).Height);
SkinData := bsSkinData1;
FreeAndNil(F);
Name := FName;
end;
end;
end;
}
end;
end;
procedure TBaseSkinForm.SetSkinFileName(const Value: string);
begin
FSkinFileName := Value;
Init(Value);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -