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.




    附件列表

    • 相关阅读:
      C#后台去除字符串最后一个字符
      C#后台验证含0的正整数
      jQuery提交表单的几种方式
      C#后台获取当前时间并格式化
      获取EasyUI日期输入框的值
      jQuery将字符串转换为数字
      JQ和JS获取span标签的内容
      正则
      json 拖拽
      event事件对象
    • 原文地址:https://www.cnblogs.com/xe2011/p/3144855.html
    Copyright © 2011-2022 走看看