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

📄 main.pas

📁 非常好的xp界面控件
💻 PAS
📖 第 1 页 / 共 2 页
字号:
begin
  ACanvas.Pen.Color := clWhite;
  ACanvas.TextRect (AButtonRect,
    (AButtonRect.Left + AButtonRect.Right - ACanvas.TextWidth (cStr[9-AButtonIndex])) div 2,
    (AButtonRect.Top + AButtonRect.Bottom - ACanvas.TextHeight (cStr[9-AButtonIndex])) div 2,
    cStr[9-AButtonIndex]);
end;


procedure TForm1.xpCheckBox19Click(Sender: TObject);
begin
  if (Sender as TxpCheckBox).Checked then
    xpWindow1.OnCustomDrawTitle := xpWindow1CustomDrawTitle
  else
    xpWindow1.OnCustomDrawTitle := nil;
  xpWindow1.ForceReDraw;  
end;

procedure TForm1.xpWindow1CustomDrawTitle(Sender: TObject;
  ACanvas: TCanvas; ATitleRect: TRect; AActive: Boolean);
begin
  ACanvas.Pen.Color := clMaroon;
  ACanvas.Pen.Width := 3;

  ACanvas.MoveTo (ATitleRect.Left, ATitleRect.Top);
  ACanvas.LineTo (ATitleRect.Right, ATitleRect.Bottom);
  ACanvas.MoveTo (ATitleRect.Left, ATitleRect.Bottom);
  ACanvas.LineTo (ATitleRect.Right, ATitleRect.Top);
end;





procedure TForm1.xpButton5Click(Sender: TObject);
begin
  if Sender = xpButton5 then
    ColorDialog1.Color := xpWindow1.xpCaption.ActiveStartColor
  else
    ColorDialog1.Color := xpWindow1.xpCaption.ActiveEndColor;

  if ColorDialog1.Execute then
  begin
    if Sender = xpButton5 then
      xpWindow1.xpCaption.ActiveStartColor := ColorDialog1.Color
    else
      xpWindow1.xpCaption.ActiveEndColor := ColorDialog1.Color;
  end;
end;


procedure TForm1.ComboBox3Change(Sender: TObject);
begin
  xpWindow1.xpCaption.GradientFill := true;
  if not xpCheckBox16.Checked then
  begin
    xpCheckBox16.Checked := true;
    xpCheckBox16Click (xpCheckBox16);
  end;

  xpWindow1.xpCaption.FillDirection := TFillDirection (ComboBox3.ItemIndex);
end;

procedure TForm1.xpCheckBox20Click(Sender: TObject);
var
  OldCheck : Boolean;
begin
  if xpCheckBox21.Checked then
  begin
    OldCheck := (Sender as TxpCheckBox).Checked;
    xpCheckBox21.Checked := False;
    xpCheckBox21Click (xpCheckBox21);
    (Sender as TxpCheckBox).Checked := OldCheck;
  end;

  if not xpCheckBox16.Checked then
  begin
    xpCheckBox16.Checked := true;
    xpCheckBox16Click (xpCheckBox16);
  end;

  xpWindow1.xpCaption.GradientFill := (Sender as TxpCheckBox).Checked;

  ComboBox3.Enabled := (Sender as TxpCheckBox).Checked;
  xpButton5.Enabled := (Sender as TxpCheckBox).Checked;
  xpButton6.Enabled := (Sender as TxpCheckBox).Checked;
  Label11.Enabled := (Sender as TxpCheckBox).Checked;
end;


procedure TForm1.xpCheckBox21Click(Sender: TObject);
var
  OldCheck : Boolean;
begin
  if xpCheckBox20.Checked then
  begin
    OldCheck := (Sender as TxpCheckBox).Checked;
    xpCheckBox20.Checked := False;
    xpCheckBox20Click (xpCheckBox20);
    (Sender as TxpCheckBox).Checked := OldCheck;
  end;

  if not xpCheckBox16.Checked then
  begin
    xpCheckBox16.Checked := true;
    xpCheckBox16Click (xpCheckBox16);
  end;

  if (Sender as TxpCheckBox).Checked then
  begin
    if xpWindow1.xpCaption.Image.Empty then
      xpBitBtn1Click (nil);
    if xpWindow1.xpCaption.Image.Empty then
    begin
      (Sender as TxpCheckBox).Checked := False;
      Exit;
    end;
    ComboBox4.ItemIndex := Integer (xpWindow1.xpCaption.ImageAlign);
  end
  else
  begin
    xpWindow1.xpCaption.Image.ReleaseHandle;
  end;
  ComboBox4.Enabled := (Sender as TxpCheckBox).Checked;
  xpBitBtn1.Enabled := (Sender as TxpCheckBox).Checked;
  xpCheckBox22.Enabled := (Sender as TxpCheckBox).Checked;
  Label12.Enabled := (Sender as TxpCheckBox).Checked;

  xpWindow1.ForceReDraw;
end;

procedure TForm1.xpBitBtn1Click(Sender: TObject);
begin
  if OpenPictureDialog1.Execute then
  begin
    xpWindow1.xpCaption.Image.ReleaseHandle;
    xpWindow1.xpCaption.Image.LoadFromFile (OpenPictureDialog1.FileName);

    if Sender <> nil then xpWindow1.ForceReDraw;
  end;
end;

procedure TForm1.ComboBox4Change(Sender: TObject);
begin
  xpWindow1.xpCaption.ImageAlign := TgbImageAlign (ComboBox4.ItemIndex);
end;


procedure TForm1.xpCheckBox22Click(Sender: TObject);
begin
  xpWindow1.xpCaption.ImageTransparent := (Sender as TxpCheckBox).Checked;
end;





procedure TForm1.xpButton7Click(Sender: TObject);
begin
  if not xpCheckBox8.Checked then
  begin
    xpCheckBox8.Checked := true;
    xpCheckBox8Click (xpCheckBox8);
  end;

  if Sender = xpButton7 then
    ColorDialog1.Color := xppSample.StartColor
  else
    ColorDialog1.Color := xppSample.EndColor;

  if ColorDialog1.Execute then
  begin
    if Sender = xpButton7 then
       xppSample.StartColor := ColorDialog1.Color
    else
       xppSample.EndColor := ColorDialog1.Color;
  end;
end;

procedure TForm1.xpButton9Click(Sender: TObject);
begin
  if not xpCheckBox7.Checked then
  begin
    xpCheckBox7.Checked := true;
    xpCheckBox7Click (xpCheckBox7);
  end;

  if Sender = xpButton9 then
    ColorDialog1.Color := xppSample.TitleStartColor
  else
    ColorDialog1.Color := xppSample.TitleEndColor;

  if ColorDialog1.Execute then
  begin
    if Sender = xpButton9 then
       xppSample.TitleStartColor := ColorDialog1.Color
    else
       xppSample.TitleEndColor := ColorDialog1.Color;
  end;
end;



procedure TForm1.xpCheckBox24Click(Sender: TObject);
begin
  xpSampleButton.Gradient := (Sender as TxpCheckBox).Checked;
end;


procedure TForm1.xpCheckBox23Click(Sender: TObject);
begin
  xpSampleButton.Enabled := (Sender as TxpCheckBox).Checked;
end;


procedure TForm1.xpCheckBox25Click(Sender: TObject);
begin
  xpSampleBitBtn.Gradient := (Sender as TxpCheckBox).Checked;
end;

procedure TForm1.xpCheckBox26Click(Sender: TObject);
begin
  xpSampleBitBtn.Enabled := (Sender as TxpCheckBox).Checked;
end;


procedure TForm1.xpCheckBox27Click(Sender: TObject);
begin
  xpSampleCheckBox.UnderLineOnActive := (Sender as TxpCheckBox).Checked;
end;



procedure TForm1.xpCheckBox28Click(Sender: TObject);
begin
  xpSampleCheckBox.ShadowText := (Sender as TxpCheckBox).Checked;
end;


procedure TForm1.xpCheckBox30Click(Sender: TObject);
begin
  xpEdit1.Rounded := xpCheckBox30.Checked;
end;

procedure TForm1.xpCheckBox31Click(Sender: TObject);
begin
  if xpCheckBox31.Checked then
  begin
    xpEdit1.Style := esXP;
  end
  else
  begin
    xpEdit1.Style := esFlat;
  end;
end;


procedure TForm1.xpPanel17TitleClick(Sender: TObject);
begin
  (Sender as TxpPanel).Minimized := not (Sender as TxpPanel).Minimized;
end;


procedure TForm1.xpCheckBox29Click(Sender: TObject);
begin
  xppSample.Movable := (Sender as TxpCheckBox).Checked;
end;

procedure TForm1.xpCheckBox32Click(Sender: TObject);
begin
  xppSample.Sizable := (Sender as TxpCheckBox).Checked;
end;



procedure TForm1.xpCheckBox33Click(Sender: TObject);
begin
  if (Sender as TxpCheckBox).Checked then
    xppSample.TitleButtons := xppSample.TitleButtons + [TTitleButton ((Sender as TxpCheckBox).Tag)]
  else
    xppSample.TitleButtons := xppSample.TitleButtons - [TTitleButton ((Sender as TxpCheckBox).Tag)];    
end;

procedure TForm1.xppSampleAfterClose(Sender: TObject);
begin
  Button1.Visible := true;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Button1.Visible := False;
  xppSample.Visible := true;
end;







procedure TForm1.ComboBox5Change(Sender: TObject);
begin
  if ComboBox5.ItemIndex in [1, 2] then
  begin
    RadioButton1.Checked := true;
    RadioButton2.Enabled := False;
    RadioButton3.Enabled := False;
    RadioButton4.Enabled := False;
    Label14.Enabled := False;
    ComboBox6.Enabled := False;
    Button2.Enabled := False;
    CheckBox1Click (self);
  end
  else
  begin
    RadioButton2.Enabled := true;
    RadioButton3.Enabled := true;
    RadioButton4.Enabled := true;
    Label14.Enabled := (ComboBox5.ItemIndex = 3);
    ComboBox6.Enabled := (ComboBox5.ItemIndex = 3);
    Button2.Enabled := (ComboBox5.ItemIndex = 3);
  end;

  if ComboBox5.ItemIndex <> 3 then
  begin
    xpPageControl1.TabWidth := 0;
    xpPageControl1.TabHeight := 0;
  end
  else
  begin
    if RadioButton1.Checked or RadioButton2.Checked then
    begin
      xpPageControl1.TabWidth := cTabWidth;
      xpPageControl1.TabHeight := cTabHeight;
    end
    else
    begin
      xpPageControl1.TabWidth := cTabHeight;
      xpPageControl1.TabHeight := cTabWidth;
    end;
  end;

  xpPageControl1.Style := TxpPageControlStyle (ComboBox5.ItemIndex);
end;



procedure TForm1.CheckBox1Click(Sender: TObject);
begin
  xpPageControl1.ShowHint := CheckBox1.Checked;
end;

procedure TForm1.ComboBox6Change(Sender: TObject);
begin
  xpPageControl1.TabTextAlignment := TAlignment (ComboBox6.ItemIndex);
end;

procedure TForm1.CheckBox2Click(Sender: TObject);
begin
  if CheckBox2.Checked then
    xpPageControl1.ImageList := ImageList2
  else
    xpPageControl1.ImageList := nil;
end;

procedure TForm1.CheckBox3Click(Sender: TObject);
begin
  xpPageControl1.HotTrack := CheckBox3.Checked;
end;

procedure TForm1.ComboBox7Change(Sender: TObject);
begin
  (xpPageControl1.ActivePage as TxpTabSheet).BGStyle := TxpTabBGStyle (ComboBox7.ItemIndex);
end;

procedure TForm1.CheckBox4Click(Sender: TObject);
begin
  xpPageControl1.OwnerDraw := CheckBox4.Checked;
end;

procedure TForm1.xpPageControl1Change(Sender: TObject);
begin
  ComboBox7.ItemIndex := Integer ((xpPageControl1.ActivePage as TxpTabSheet).BGStyle);
end;

procedure TForm1.xpPageControl1DrawItem(Control: TWinControl;
  Index: Integer; ACanvas: TControlCanvas; ARect: TRect;
  State: TOwnerDrawState);
begin
  InflateRect (ARect, -1, -2);
  if Index = xpPageControl1.ActivePage.TabIndex then InflateRect (ARect, 2, 0);
  Dec (ARect.Top, 1);
  GradientFillRect (ACanvas, ARect, clWhite, clSilver, fdVerticalFromCenter, 30);
  InflateRect (ARect, 1, 1);
  ACanvas.Pen.Color := xpPageControl1.BorderColor;
  ACanvas.Brush.Style := bsCLEAR;
  ACanvas.Rectangle (ARect.Left, ARect.Top, ARect.Right, ARect.Bottom);
  ACanvas.Font.Color := clNavy;
  ACanvas.Font.Style := [fsBold];
  ACanvas.TextOut (ARect.Left+5, ARect.Top + 4, 'Tab ' + IntToStr (Index+1));
end;

procedure TForm1.RadioButton2Click(Sender: TObject);
begin
  xpPageControl1.TabPosition := tpBottom;
  if ComboBox5.ItemIndex = 3 then
  begin
    xpPageControl1.TabWidth := cTabWidth;
    xpPageControl1.TabHeight := cTabHeight;
  end;
end;

procedure TForm1.RadioButton3Click(Sender: TObject);
begin
  xpPageControl1.TabPosition := tpLeft;
  if ComboBox5.ItemIndex = 3 then
  begin
    xpPageControl1.TabWidth := cTabHeight;
    xpPageControl1.TabHeight := cTabWidth;
  end;
end;

procedure TForm1.RadioButton4Click(Sender: TObject);
begin
  xpPageControl1.TabPosition := tpRight;
  if ComboBox5.ItemIndex = 3 then
  begin
    xpPageControl1.TabWidth := cTabHeight;
    xpPageControl1.TabHeight := cTabWidth;
  end;
end;

procedure TForm1.RadioButton1Click(Sender: TObject);
begin
  xpPageControl1.TabPosition := tpTop;

  if ComboBox5.ItemIndex = 3 then
  begin
    xpPageControl1.TabWidth := cTabWidth;
    xpPageControl1.TabHeight := cTabHeight;
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  ColorDialog1.Color := xpPageControl1.BorderColor;
  if ColorDialog1.Execute then
    xpPageControl1.BorderColor := ColorDialog1.Color;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  ColorDialog1.Color := (xpPageControl1.ActivePage as TxpTabSheet).Color;
  if ColorDialog1.Execute then
  begin
    (xpPageControl1.ActivePage as TxpTabSheet).Color := ColorDialog1.Color;
    if ComboBox7.ItemIndex <> 0 then
    begin
      ComboBox7.ItemIndex := 0;
      ComboBox7Change (Self);
    end;
  end;
end;


procedure TForm1.xpCheckBox37Click(Sender: TObject);
begin
  if xpCheckBox37.Checked then
  begin
    xpComboBox1.XPStyle.InActiveButtonColor := $00FACDAD;
    xpComboBox1.XPStyle.InActiveBorderColor := $00FADDDD;
    xpComboBox1.XPStyle.ButtonStyle := cbsXP;
  end
  else
  begin
    xpComboBox1.XPStyle.InActiveButtonColor := clBtnFace;
    xpComboBox1.XPStyle.InActiveBorderColor := clBtnFace;
    xpComboBox1.XPStyle.ButtonStyle := cbsFlat;
  end
end;



procedure TForm1.ComboBox8Change(Sender: TObject);
begin
  xpComboBox1.XPStyle.BGStyle := TComboBGStyle (ComboBox8.ItemIndex);
end;


procedure TForm1.xpCheckBox36Click(Sender: TObject);
begin
  xpComboBox1.Enabled := xpCheckBox36.Checked;
end;

procedure TForm1.ComboBox9Change(Sender: TObject);
begin
  xpComboBox1.XPStyle.SelGradientFillDir := TFillDirection (ComboBox9.ItemIndex);
  xpComboBox1.SetFocus;
end;


end.

⌨️ 快捷键说明

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