具有不同字体的列表框

具有不同字体的列表框_第1张图片
在一个 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.




附件列表

     

    你可能感兴趣的:(字体)