?? 為列表框添光彩 (2000年8月9日).txt
字號:
為列表框添光彩 (2000年8月9日)
本站更新 分類: 作者:srw 推薦: 閱讀次數:568
(http://www.codesky.net)
--------------------------------------------------------------------------------
----為了改變Listbox和Combobox兩個控件的單調風格,我想在它們的每一項前面加上個
圖標。從表面上看好像不大可能啦。就在走投無路的時候,我忽然發現這兩個構件都有一個
style屬性,它可以設為lbOwnerDrawFixed,Draw這個單詞吸引了我,然后我又從Delphi
的在線幫助中找到了一個相關的事件OnDrawItem,在這個事件中寫一段代碼,就可以在列
表框中的每一項前面添加一個小圖標啦。
----下面是在Listbox的OnDrawItem事件中添加的代碼:
procedureTForm1.ListBox1DrawItem(Control:
TWinControl;Index:Integer;
Rect:TRect;State:TOwnerDrawState);
var
Bitmap:TBitmap;
Offset:Integer;
begin
with(ControlasTListBox).Canvasdo
begin
FillRect(Rect);
Offset:=2;
Bitmap:=TBitmap.create;
Bitmap.LoadFromFile(′d:\temp1\1.bmp′);
//指定圖文件是d:\temp1\1.bmp
BrushCopy(Bounds(Rect.Left+2,Rect.Top,
Bitmap.Width,Bitmap.Height),
Bitmap,Bounds(0,0,Bitmap.Width,
Bitmap.Height),clRed);
Offset:=Bitmap.width+6;
TextOut(Rect.Left+Offset,Rect.Top,
(ControlasTListBox).Items[Index])
end;
end;
----進一步,利用OnDrawItem事件的參數Index還可以在不同項前面添加不同的圖標。還
要告訴你的是,當用add方法為列表框或下拉框添加項目時,會自動執行OnDrawItem事件,
這樣新添加的項目前面也就有了一個圖標。
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -