![]() |
Komponente gesucht
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
also ich hab vor, ein Menü zu erstellen, indem Programme aufgelistet werden. Das ganze soll wie in dem Screeni aussehen, und auf Mausklicks reagieren können (also muss jede Zeile bzw. jedes Proggi auf Mausklick reagieren). Welche Komponente brauch ich denn da? PS: Das is mit einem Bildeditor gezeichnet. mfg devnull |
Re: Komponente gesucht
Hmmm, vielleicht einfach eine Listbox? Geht das?
|
Re: Komponente gesucht
Hi!
Wie wäre es mit einer Listbox-ähnlichen Komponente? Schonmal bei Torry gesucht? Ciao fkerber |
Re: Komponente gesucht
Schau Dir mal die TScrollBox an (OH), zu finden auf der Palette "Zusätzlich" - mit der kannst Du das realisieren denke ich.
Gruß |
Re: Komponente gesucht
TListBox mit Ownerdraw und Events OnDrawItem und OnMeasureItem dürfte reichen.
|
Re: Komponente gesucht
Gibts da auch irgendwo einleuchtende Beispiele?
|
Re: Komponente gesucht
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; |
Re: Komponente gesucht
Hi,
danke für deine AW. Ich hab aber tatsächlich ein Problem: Wie bekomm ich denn die Bilder da rein??? Danke schonmal im voraus |
Re: Komponente gesucht
Zitat:
|
Re: Komponente gesucht
:wiejetzt:
Ich hab mal ein bisschen rumgespielt, bekomme aber absolut kein Bild (welches Format, Typ?) rein. Source aus Delphi-Hilfe:
Delphi-Quellcode:
mfg
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState); var Bitmap: TBitmap; { Temporäre Variable für Bitmap } Offset: Integer; { Offset für Text } begin with (Control as TListBox).Canvas do { Ausgabe in Zeichenfläche der Liste, nicht im Formular } begin FillRect(Rect); { Rechteck löschen } Offset := 2; { Standard-Offset } // Was macht denn die nachfolgende Zeile??? Bitmap := TBitmap((Control as TListBox).Items.Objects[Index]); { Bitmap abrufen } if Bitmap <> nil then begin BrushCopy(Bounds(Rect.Left + Offset, Rect.Top, Bitmap.Width, Bitmap.Height), Bitmap, Bounds(0, 0, Bitmap.Width, Bitmap.Height), clRed); { Bitmap anzeigen} Offset := Bitmap.width + 6; { Vier Pixel zwischen Bitmap und Text einfügen} end; TextOut(Rect.Left + Offset, Rect.Top, (Control as TListBox).Items[Index]) { Text anzeigen } end; end; devnull |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:51 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz