zoukankan      html  css  js  c++  java
  • 具有不同字体的列表框

    在一个 LISTBOX 中显示所见所得字体 这个方法设置Combobox同样有效
    ComboboxFont
    具有不同字体的列表框
        
     
     
     
     
    unit Unit1;

    interface

    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ComCtrls, ExtCtrls;

    type
      TForm1 = class(TForm)
        ComboBox1: TComboBox;
        ListBox1: TListBox;
        procedure FormCreate(Sender: TObject);
        procedure ListBox1MeasureItem(Control: TWinControl; Index: Integer;
          var Height: Integer);
        procedure ListBox1DrawItem(Control: TWinControl; Index: Integer;
          Rect: TRect; State: TOwnerDrawState);
        procedure ComboBox1MeasureItem(Control: TWinControl; Index: Integer;
          var Height: Integer);
        procedure ComboBox1DrawItem(Control: TWinControl; Index: Integer;
          Rect: TRect; State: TOwnerDrawState);
      private
        { Private declarations }
      public
        { Public declarations }
      end;

    var
      Form1: TForm1;

    implementation

    {$R *.dfm}

    procedure TForm1.FormCreate(Sender: TObject);
    begin
      ListBox1.Style:=lbOwnerDrawFixed;
      Listbox1.Items:=Screen.Fonts;

      ComboBox1.Style:=csOwnerDrawFixed;
      ComboBox1.Items:=Screen.Fonts;
    end;
        
    //------------------------------------------------------------------------------
    //ListBox
    procedure TForm1.ListBox1MeasureItem(Control: TWinControl; Index: Integer;
      var Height: Integer);
    var
       h : integer ;
    begin
         with Control as TListBox do
         begin
            Canvas.Font.Name := Items[Index] ;
            h := Canvas.TextHeight(Items[Index]) ;
         end ;
         Height := h ;
    end ;

    procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
      Rect: TRect; State: TOwnerDrawState);
    begin
         with Control as TListBox do
         begin
            Canvas.Font.Name := Items[Index] ;
            Canvas.FillRect(Rect) ;
            Canvas.TextOut(Rect.Left, Rect.Top, Items[Index]) ;
         end ;
    end ;

    //------------------------------------------------------------------------------
    //Combobox

    procedure TForm1.ComboBox1MeasureItem(Control: TWinControl; Index: Integer;
      var Height: Integer);
    var
       h : integer ;
    begin
         with Control as TComboBox do
         begin
            Canvas.Font.Name := Items[Index] ;
            h := Canvas.TextHeight(Items[Index]) ;
         end ;
         Height := h ;
    end ;


    procedure TForm1.ComboBox1DrawItem(Control: TWinControl; Index: Integer;
      Rect: TRect; State: TOwnerDrawState);
    begin
         with Control as TComboBox do
         begin
            Canvas.Font.Name := Items[Index] ;
            Canvas.FillRect(Rect) ;
            Canvas.TextOut(Rect.Left, Rect.Top, Items[Index]) ;
         end ;
    end ;
    //------------------------------------------------------------------------------






    end.




    附件列表

    • 相关阅读:
      Android四大基本组件介绍与生命周期
      TRIZ系列-创新原理-23-反馈原理
      hibernate之6.one2many单向
      软件评測师真题考试分析-5
      WAS集群系列(3):集群搭建:步骤1:准备文件
      Android Developer:合并清单文件
      移动均值滤波与中值滤波
      使用React的static方法实现同构以及同构的常见问题
      mysql合并同一列的值
      iOS开发
    • 原文地址:https://www.cnblogs.com/xe2011/p/3144855.html
    Copyright © 2011-2022 走看看