📄 skintestunit.pas
字号:
repeat
Inc(A);
if A=1 then B:=FindFirst(S1+'*.*',faDirectory,SR) else
B:=FindNext(SR);
if (B=0) and (SR.Name<>'.') and (SR.Name<>'..') then
L.Add(S1+SR.Name);
until B<>0;
FindClose(SR);
//
SL:=TStringList.Create;
try
for A:=0 to L.Count-1 do
begin
if FileExists(L[A]+'\skin.sxs') then
begin
LoadStringsFromSkinFile(L[A]+'\skin.sxs',SL);
if SL.Values['SkinName']<>'' then
begin
SkinNames.Add(SL.Values['SkinName']+' (SXS)');
SkinPaths.Add(L[A]+'\skin.sxs');
end;
end else
if FileExists(L[A]+'\skin.ini') then
begin
LoadStringsFromSkinFile(L[A]+'\skin.ini',SL);
if SL.Values['SkinName']<>'' then
begin
SkinNames.Add(SL.Values['SkinName']+' (INI)');
SkinPaths.Add(L[A]+'\skin.ini');
end;
end;
end;
finally
SL.Free;
end;
//
L.Clear;
A:=0;
repeat
Inc(A);
if A=1 then B:=FindFirst(S1+'*.zip',faAnyFile,SR) else
B:=FindNext(SR);
if (B=0) and (SR.Name<>'.') and (SR.Name<>'..') then
L.Add(S1+SR.Name);
until B<>0;
FindClose(SR);
//
SL:=TStringList.Create;
try
for A:=0 to L.Count-1 do
begin
if FileExists(L[A]) then
begin
LoadStringsFromSkinFile(L[A],SL);
if SL.Values['SkinName']<>'' then
begin
SkinNames.Add(SL.Values['SkinName']+' (ZIP)');
SkinPaths.Add(L[A]);
end;
end
end;
finally
SL.Free;
end;
finally
L.Free;
end;
for A:=0 to SkinNames.Count-1 do
ComboBox1.Items.Add(SkinNames[A]);
if ComboBox1.Items.Count>0 then
ComboBox1.ItemIndex:=0;
ComboBox1Change(nil);
SXSkinNotebook1.ActivePage:=AboutPage;
ResetTestEffectStyles;
LastBrushX:=-1;
ClearPaintBox;
SXSkinLabel111.Caption:='version '+SXSkinComponents_VersionStr;
end;
procedure TForm1.ClearPaintBox;
begin
SXSkinPaintBox1.Bitmap.Clear(0);
RectVFadeT(SXSkinPaintBox1.Bitmap,$30FFFFFF,$60FFFFFF,0,0,SXSkinPaintBox1.Width,SXSkinPaintBox1.Height);
SXSkinPaintBox1.Bitmap.FrameRectTS(0,0,SXSkinPaintBox1.Width, SXSkinPaintBox1.Height, $A0000000);
SXSkinPaintBox1.Bitmap.FrameRectTS(1,1,SXSkinPaintBox1.Width-1,SXSkinPaintBox1.Height-1,$70000000);
SXSkinPaintBox1.Bitmap.FrameRectTS(2,2,SXSkinPaintBox1.Width-2,SXSkinPaintBox1.Height-2,$40000000);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
SkinNames.Free;
SkinPaths.Free;
end;
procedure TForm1.SXSkinCheckBox5Click(Sender: TObject);
begin
SXSkinCheckBox1.Enabled:=SXSkinCheckBox5.Checked;
SXSkinCheckBox2.Enabled:=SXSkinCheckBox5.Checked;
end;
procedure TForm1.SXSkinEdit12UserModified(Sender: TObject);
begin
UpdateEventCaption(Sender,SXSkinLabel85);
end;
procedure TForm1.SXSkinGroupBox10UserEnterFinished(Sender: TObject);
begin
SXSkinCheckBox16.Enabled:=SXSkinGroupBox10.Checked;
end;
procedure TForm1.SXSkinGroupBox1Change(Sender: TObject);
begin
SetComponentEnabled(SXSkinGroupBox2,SXSkinGroupBox1.Checked);
end;
procedure TForm1.SXSkinGroupBox9UserEnterFinished(Sender: TObject);
begin
SXSkinCheckBox15.Enabled:=SXSkinGroupBox9.Checked;
end;
procedure TForm1.SXSkinLabel49Click(Sender: TObject);
begin
ShellExecute(0,'open',PChar('http://www.saarixx.info/sxskincomponents/'),nil,nil,SW_SHOWNORMAL);
end;
procedure TForm1.SXSkinLabel52Click(Sender: TObject);
begin
ShellExecute(0,'open',PChar('mailto:sxskincomponents@saarixx.info'),nil,nil,SW_SHOWNORMAL);
end;
procedure TForm1.PaintBoxPageResize(Sender: TObject);
begin
if SXSkinNotebook1.ActivePage=PaintBoxPage then
SXSkinPaintBox1.Width:=PaintBoxPage.Width-16;
end;
procedure TForm1.PaintBrushDot;
var PT:TPoint;
P:TPolygon32;
A,L:Integer;
BS:Single;
procedure DotAt(X,Y:Integer);
var R:Integer;
begin
P.Offset(Fixed(X),Fixed(Y));
R:=BrushCounter mod 256;
if R>128 then R:=255-R;
R:=R*$101;
P.Draw(SXSkinPaintBox1.Bitmap,0,$10FF0000+R);
P.Offset(Fixed(-X),Fixed(-Y));
end;
begin
Inc(BrushCounter,2);
P:=TPolygon32.Create;
try
BS:=Abs(StrToIntDef(SXSkinSpinEdit10.Text,8))/2;
if BS>50 then BS:=50;
SetEllipse(P,-BS,-BS,BS*2,BS*2);
PT:=SXSkinPaintBox1.ScreenToClient(Mouse.CursorPos);
if LastBrushX<0 then
DotAt(PT.X,PT.Y) else
begin
L:=round(Sqrt(Sqr(PT.X-LastBrushX)+Sqr(PT.Y-LastBrushY)));
for A:=1 to L do
DotAt(LastBrushX+round((PT.X-LastBrushX)*A/L),
LastBrushY+round((PT.Y-LastBrushY)*A/L));
end;
finally
P.Free;
end;
LastBrushX:=PT.X;
LastBrushY:=PT.Y;
end;
procedure TForm1.SXSkinPaintBox1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
BrushDown:=True;
PaintBrushDot;
end;
procedure TForm1.SXSkinPaintBox1MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
begin
if BrushDown then
PaintBrushDot;
end;
procedure TForm1.SXSkinPaintBox1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
BrushDown:=False;
LastBrushX:=-1;
end;
procedure TForm1.SXSkinPaintBox1Resize(Sender: TObject);
begin
ClearPaintBox;
end;
procedure TForm1.SXSkinPaintBox2Paint(Bitmap: TBitmap32; DstRect: TRect);
begin
Bitmap.PenColor:=$40000000;
RoundRectangle(Bitmap,DstRect.Left+3,DstRect.Top+3,SXSkinPaintBox2.Width-4,SXSkinPaintBox2.Height-4,16);
RoundRectHFadeT(Bitmap,$100000FF,$400000FF,DstRect.Left+2,DstRect.Top+2,SXSkinPaintBox2.Width-3,SXSkinPaintBox2.Height-4,16);
Bitmap.PenColor:=$FF000000;
RoundRectangle(Bitmap,DstRect.Left+2,DstRect.Top+2,SXSkinPaintBox2.Width-4,SXSkinPaintBox2.Height-4,16);
Bitmap.Font.Name:='Times New Roman';
Bitmap.Font.Size:=40;
DrawSmoothText(Bitmap,'Hello!',DstRect,DT_CENTER or DT_VCENTER or DT_SINGLELINE,1,$80000000);
OffsetRect(DstRect,-1,-1);
DrawSmoothText(Bitmap,'Hello!',DstRect,DT_CENTER or DT_VCENTER or DT_SINGLELINE,1,$8000FF00);
end;
procedure TForm1.SXSkinPaintBox3FastPaint(Rect: TRect; Rgn: HRGN;
Bitmap: TBitmap32; X, Y: Integer);
var R:TRect;
begin
Bitmap.FillRectTS(X,Y,X+Rect.Right-Rect.Left,Y+Rect.Bottom-Rect.Top,$40008000);
Bitmap.Font.Name:='Times New Roman';
Bitmap.Font.Size:=40;
R:=SXSkinPaintBox3.ClientRect;
OffsetRect(R,X-Rect.Left,Y-Rect.Top);
DrawSmoothText(Bitmap,'Hello!',R,DT_CENTER or DT_VCENTER or DT_SINGLELINE,1,$80000000);
end;
procedure TForm1.SXSkinRadioButton6UserModified(Sender: TObject);
begin
ResetTestEffectStyles;
end;
procedure TForm1.SXSkinRadioButton79UserModified(Sender: TObject);
begin
if SXSkinRadioButton79.Checked then
BorderStyle:=bsSizeable else
if SXSkinRadioButton80.Checked then
BorderStyle:=bsSingle else
if SXSkinRadioButton81.Checked then
BorderStyle:=bsDialog else
if SXSkinRadioButton82.Checked then
BorderStyle:=bsToolWindow else
if SXSkinRadioButton83.Checked then
BorderStyle:=bsSizeToolWin;
end;
procedure TForm1.SXSkinRadioButton84UserModified(Sender: TObject);
begin
if SXSkinRadioButton84.Checked then
SXSkinForm1.CustomCaptionHeight:=0 else
if SXSkinRadioButton85.Checked then
SXSkinForm1.CustomCaptionHeight:=15 else
if SXSkinRadioButton86.Checked then
SXSkinForm1.CustomCaptionHeight:=25 else
if SXSkinRadioButton87.Checked then
SXSkinForm1.CustomCaptionHeight:=50 else
if SXSkinRadioButton88.Checked then
SXSkinForm1.CustomCaptionHeight:=100;
end;
procedure TForm1.SXSkinSpinEdit19UserModified(Sender: TObject);
var A:Integer;
begin
A:=StrToIntDef(SXSkinSpinEdit19.Text,100);
if A<5 then A:=5;
if A>300 then A:=300;
SXSkinImage42.Width:=A;
SXSkinImage42.Height:=A;
end;
procedure TForm1.SXSkinUpDown17Click(Sender: TObject; UpButton: Boolean);
begin
if UpButton then
begin
SXSkinEdit17.Text:=inttostr(strtointdef(SXSkinEdit17.Text,0)+1);
end else
begin
SXSkinEdit17.Text:=inttostr(strtointdef(SXSkinEdit17.Text,0)-1);
end;
end;
procedure TForm1.SXSkinUpDown1Click(Sender: TObject; UpButton: Boolean);
begin
if UpButton then
begin
SXSkinEdit16.Text:=inttostr(strtointdef(SXSkinEdit16.Text,0)+1);
end else
begin
SXSkinEdit16.Text:=inttostr(strtointdef(SXSkinEdit16.Text,0)-1);
end;
end;
procedure TForm1.SXSkinCheckBox3Resize(Sender: TObject);
begin
SXSkinPanel31.Left:=SXSkinCheckBox3.Left+1000;
end;
procedure TForm1.SXSkinCheckBox3UserModified(Sender: TObject);
begin
TestingRegions:=SXSkinCheckBox3.Checked;
end;
procedure TForm1.SXSkinCheckBox46UserModified(Sender: TObject);
var T:TBorderIcons;
begin
T:=[];
if SXSkinCheckBox46.Checked then
Include(T,biSystemMenu);
if SXSkinCheckBox47.Checked then
Include(T,biMaximize);
if SXSkinCheckBox48.Checked then
Include(T,biMinimize);
if SXSkinCheckBox49.Checked then
Include(T,biHelp);
BorderIcons:=T;
end;
procedure TForm1.SXSkinButton20Click(Sender: TObject);
begin
if SXSkinButton16.Enabled then
begin
SXSkinButton20.Caption:='Enable Button';
SXSkinButton16.Enabled:=False;
end else
begin
SXSkinButton20.Caption:='Disable Button';
SXSkinButton16.Enabled:=True;
end;
end;
procedure TForm1.SXSkinButton61Click(Sender: TObject);
begin
if SXSkinCheckBox8.Enabled then
begin
SXSkinButton61.Caption:='Enable CheckBox';
SXSkinCheckBox8.Enabled:=False;
end else
begin
SXSkinButton61.Caption:='Disable CheckBox';
SXSkinCheckBox8.Enabled:=True;
end;
end;
procedure TForm1.SXSkinButton62Click(Sender: TObject);
begin
if SXSkinEdit1.Enabled then
begin
SXSkinButton62.Caption:='Enable Edit';
SXSkinEdit1.Enabled:=False;
end else
begin
SXSkinButton62.Caption:='Disable Edit';
SXSkinEdit1.Enabled:=True;
end;
end;
procedure TForm1.SXSkinButton63Click(Sender: TObject);
begin
ClearPaintBox;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -