程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi實現LISTBOX折行顯示文字的方法

Delphi實現LISTBOX折行顯示文字的方法

編輯:Delphi

Delphi控制ListBox控件在顯示文字時折行顯示內容,左右兩個ListBox中,在右側ListBox中粘貼入數據,點擊“復制”後,左側的ListBox中會顯示相應內容,你點擊一下任意內容,會發現Listbox會自動將某一段文字折行顯示,以保持原有文字的排版風格,這是個不錯的小技巧。

vIEw source print? 01 unit Unit1; 02 interface 03 uses 04   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 05   Dialogs, StdCtrls; 06 type 07   TForm1 = class(TForm) 08     ListBox1: TListBox; 09     Memo1: TMemo; 10     Button1: TButton; 11     procedure ListBox1MeasureItem(Control: TWinControl; Index: Integer; 12       var Height: Integer); 13     procedure Button1Click(Sender: TObject); 14     procedure ListBox1DrawItem(Control: TWinControl; Index: Integer; 15       Rect: TRect; State: TOwnerDrawState); 16   private 17     { Private declarations } 18   public 19     { Public declarations } 20   end; 21 var 22   Form1: TForm1; 23 implementation 24 {$R *.dfm} 25 procedure TForm1.ListBox1MeasureItem(Control: TWinControl; Index: Integer; 26   var Height: Integer); 27 var 28   lpstr:PChar; 29   c,h:integer; 30   tc:TRect; 31 begin 32   with Control as TListBox do 33   begin 34     c:=length(items[index]); 35     lpstr:=PChar(Items[index]); 36     tc:=clIEntrect; 37     h:=drawtext(Canvas.Handle,lpstr,c,tc,DT_CALCRECT or DT_WordBREAK); 38   end; 39   Height:=h+4; 40 end; 41 procedure TForm1.Button1Click(Sender: TObject); 42 begin 43   listbox1.Items.Assign(memo1.Lines); 44 end; 45 procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer; 46   Rect: TRect; State: TOwnerDrawState); 47 var 48   lpstr:PChar; 49   c:integer; 50 begin 51   with Control as TListBox do 52   begin 53     Canvas.FillRect(Rect); 54     c:=length(items[index]); 55     lpstr:=PChar(Items[index]); 56     drawtext(Canvas.Handle,lpstr,c,Rect,DT_WordBREAK); 57   end; 58 end; 59 end.
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved