上節已介紹如何把對象加入字符串列表
procedure TForm
var
Bitmap: TBitMap;
begin
Listbox
Bitmap := TBitmap
Bitmap
Tabset
Bitmap := TBitmap
Bitmap
Tabset
end;
當部件的Style屬性是自畫式時
在應用程序繪制自畫控制之前
通常由Windows決定項目顯示的大小
測量項目事件有兩個重要參數: 項目索引號與項目的大小
OnMeasureItem的聲明如下
ListBox
例程中響應OnMeasureItem事件的代碼如下:
procedure TForm
var Height: Integer);
begin
with ListBox
begin
Font
Height := TextHeight(
end;
end;
procedure TForm
var TabWidth: Integer);
var
BitmapWidth: Integer;
begin
BitmapWidth := TBitmap( TabSet
Inc(TabWidth
end;
在OnMeasureItem事件發生後
OnMeasureItem的聲明如下
DrawItem( Control: TWinControl; Index: integer; Rect: TRect; State: TOwnerDraw);
其中Control是包含項目的部件引用
Index 是項目的索引號
Rect 是繪制的矩形
State 是項目的狀態
在例程的列表框中
procedure TForm
Rect: TRect; State: TOwnerDrawState);
begin
with ListBox
begin
FillRect(Rect);
Font
TextOut(Rect
end;
end;
在Tabset部件中
procedure TForm
R: TRect; Index: Integer; Selected: Boolean);
var
Bitmap: TBitmap;
begin
Bitmap := TBitmap(TabSet
with TabCanvas do
begin
Draw(R
TextOut(R
R
end;
end;
From:http://tw.wingwit.com/Article/program/Delphi/201311/24764.html