TListBoxItemのOnPaintイベントで表示する方法と、TListBoxItemの上にTImageコンポーネントを置いて表示する方法を紹介します。
TListBoxItemのOnPaintイベントで表示する方法
フォーム上にTButtonコンポーネントとTListBoxコンポーネントを配置します。
TButtonコンポーネントのOnClickイベントを記述します。
procedure TForm2.Button1Click(Sender: TObject);
var
Item: TListBoxItem;
begin
Item := TListBoxItem.Create(nil);
Item.Parent := ListBox1;
Item.Height := 200;
Item.OnPaint := ListBoxItemPaint;
end;
ボタンを押すと、ListBox1に項目を追加します。
ListBox1の項目は、フォームのListBoxItemPaintメソッドで描画します。
フォームにListBoxItemPaintメソッドを追加します。
type
TForm2 = class(TForm)
Button1: TButton;
ListBox1: TListBox;
procedure Button1Click(Sender: TObject);
private
{ private 宣言 }
procedure ListBoxItemPaint(Sender: TObject; Canvas: TCanvas;
const ARect: TRectF);
public
{ public 宣言 }
end;
ListBoxItemPaintメソッドで画像を描画します。
procedure TForm2.ListBoxItemPaint(Sender: TObject; Canvas: TCanvas;
const ARect: TRectF);
const
IMAGEFILE_PATH =
'C:\Program Files (x86)\Embarcadero\Studio\16.0\Images\Splash\256Color\CHEMICAL.BMP';
var
Bitmap: TBitmap;
SrcRect, DstRect: TRectF;
begin
Bitmap := TBitmap.Create;
Bitmap.LoadFromFile(IMAGEFILE_PATH);
SrcRect.Left := 0;
SrcRect.Top := 0;
SrcRect.Width := Bitmap.Width;
SrcRect.Height := Bitmap.Height;
DstRect.Left := 0;
DstRect.Top := 0;
DstRect.Width := Bitmap.Width;
DstRect.Height := Bitmap.Height;
Canvas.DrawBitmap(Bitmap, SrcRect, DstRect, 1.0, True);
Bitmap.Free;
end;
TListBoxItemの上にTImageコンポーネントを置いて表示する方法
フォーム上にTButtonコンポーネントとTListBoxコンポーネントを配置します。
TButtonコンポーネントのOnClickイベントを記述します。
procedure TForm2.Button1Click(Sender: TObject);
const
IMAGEFILE_PATH =
'C:\Program Files (x86)\Embarcadero\Studio\16.0\Images\Splash\256Color\CHEMICAL.BMP';
var
Item: TListBoxItem;
Image: TImage;
begin
Item := TListBoxItem.Create(nil);
Item.Parent := ListBox1;
Item.Height := 200;
Image := TImage.Create(Item);
Image.Parent := Item;
Image.Width := 240;
Image.Height := 180;
Image.Bitmap.LoadFromFile(IMAGEFILE_PATH);
end;
ボタンを押すと、ListBox1に項目を追加します。
追加した項目の上にTImageコンポーネントを配置し、そのTImageコンポーネントに画像を表示します。