zoukankan      html  css  js  c++  java
  • 具有 Button 风格的 Panel(覆盖TCustomPanel的Paint函数,用到了ThemeServices)

    unit Unit2;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, ImgList, ExtCtrls;
    
    type
      TForm2 = class(TForm)
        ImageList1: TImageList;
        Panel1: TPanel;
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    
      TVSPanel = class(TCustomPanel)
      private
      protected
        procedure Paint; override;
      public
    
    end;
    
    var
      Form2: TForm2;
    
    implementation
    
    uses Themes;
    
    {$R *.dfm}
    
    { TVSPanel }
    
    procedure TVSPanel.Paint;
    var
      Details: TThemedElementDetails;
    begin
      inherited;
      if ThemeServices.ThemesEnabled then
      begin
        Details := ThemeServices.GetElementDetails(tttBaloonNormal{tbPushButtonHot});   {这里画个按钮处于 Hot 状态下的样子}
        PerformEraseBackground(Self, Canvas.Handle);      {擦除画按钮时的背景}
        ThemeServices.DrawElement(Canvas.Handle, Details, ClientRect);
        ThemeServices.DrawText(Canvas.Handle, Details, Caption, ClientRect,
          DT_EXPANDTABS or DT_VCENTER or DT_CENTER or DT_SINGLELINE, 0);
      end;
    end;
    
    procedure TForm2.FormCreate(Sender: TObject);
    var
      APanel: TVSPanel;
    begin
      APanel := TVSPanel.Create(Application);
      APanel.Left := 100;
      APanel.Top := 100;
      APanel.Width := 200;
      APanel.Height := 30;
      APanel.Caption := '具有 Button 风格的 Panel';
      APanel.Parent := Self;
    end;
    
    end.

    参考:http://www.cnblogs.com/key-ok/p/3380535.html

  • 相关阅读:
    2017.10.04
    2017.10.03
    Luogu P3110 [USACO14DEC]驮运Piggy Back
    Luogu P2176 [USACO14FEB]路障Roadblock
    Luogu P3797 妖梦斩木棒
    数列分块入门1-9 By hzwer
    CodeForces 【20C】Dijkstra?
    Luogu P2835 刻录光盘
    Luogu P1692 部落卫队
    Luogu P2847 [USACO20DEC]Moocast(gold)奶牛广播-金
  • 原文地址:https://www.cnblogs.com/findumars/p/4748629.html
Copyright © 2011-2022 走看看