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

📄 skintestunit.pas

📁 skin components for design of your applicastions
💻 PAS
📖 第 1 页 / 共 4 页
字号:
  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 + -