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.




    附件列表

    • 相关阅读:
      PAT 甲级 1128 N Queens Puzzle
      HDU 1995 R-汉诺塔V
      PAT L1-039 古风排版
      PAT L2-028 秀恩爱分得快
      ZOJ 2060 A-Fibonacci Again
      HDU 2079 选课时间
      HDU 1016 Prime Ring Problem
      理论相关概念原理
      单播字符、字符串收发
      OSAL的原理
    • 原文地址:https://www.cnblogs.com/xe2011/p/3144855.html
    Copyright © 2011-2022 走看看