我正在嘗試創建一個帶有影像的串列框。圖片將從 TImage 組件中獲取;我不想使用 TImageList,因為 TImage 可以處理很多影像型別(png、gif、jpg),而且我不必轉換它來填充 Imagelist。
所以我已經將我的串列框樣式設定為 lbOwnerDrawVariable 并且我正在嘗試將 TImage 中的影像繪制到串列框中。我已將 Image1 的寬度和高度設定為 50,因為這是我希望影像在串列框中具有的大小。
這是我的代碼:
procedure TForm2.listbox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
var
CenterText: Integer;
begin
listbox1.Canvas.FillRect(Rect);
listbox1.Canvas.draw(rect.Left 4,rect.Top 4,image1.Picture.graphic);
CenterText := (Rect.Bottom - Rect.top - listbox1.Canvas.TextHeight(text)) div 2;
listbox1.Canvas.TextOut(Rect.left 58, Rect.top CenterText, listbox1.Items.Strings[index]);
end;
但是,它不是將影像放在每個串列框項中,而是在串列框本身內繪制了很多影像,其原始大小而不是 50 ......我的代碼有什么問題?

uj5u.com熱心網友回復:
Image1.Width和Image1.Height是TImage控制元件的尺寸。它們與Image1.Picture.
您需要
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/422346.html
標籤:
