Ein Formular mit ListBox, Edit und Button-Control und unteren Code sollte dir das prinzip verdeutlichen.
Das Bild mußt Du natürlich selbst noch einzeichnen, sollte aber auch kein Problem darstellen.
Code:
type
TForm1 = class(TForm)
ListBox1: TListBox;
Edit1: TEdit;
Button1: TButton;
procedure ListBox1MeasureItem(Control: TWinControl; Index: Integer;
var Height: Integer);
procedure ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
procedure Button1Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.ListBox1MeasureItem(Control: TWinControl; Index: Integer;
var Height: Integer);
begin
Height := Index * 10;
end;
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
var
Height: Integer;
begin
Height := ListBox1.Canvas.TextHeight(ListBox1.Items[Index]);
ListBox1.Canvas.FillRect(Rect);
ListBox1.Canvas.Font.Size := MulDiv(ListBox1.Canvas.Font.Size, Index*10, Height);
ListBox1.Canvas.TextOut(Rect.Left, Rect.Top, ListBox1.Items[Index]);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ListBox1.Items.Add(Edit1.Text);
end;