Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Listbox mit Objekten (https://www.delphipraxis.net/97313-listbox-mit-objekten.html)

Luckie 8. Aug 2007 12:50


Listbox mit Objekten
 
Gibt es eine Listbox-Komponente in deren Items man Objekte darstellen kann und Text? Ich müsste mehrere TImage-Komponenten verwalten und der Benutzer soll an Hand dieser Liste die Image-Komponenten auswählen können, welches dargestellt werden soll.

marabu 8. Aug 2007 13:00

Re: Listbox mit Objekten
 
Hallo Michael,

angesichts des Code-Beispiels zu OnDrawItem() in der Online-Hilfe würde ich keine Komponente mehr suchen. Wären es keine TImages sondern Icons, dann gäbe es da TIconListBox.

Freundliche Grüße

Luckie 8. Aug 2007 13:05

Re: Listbox mit Objekten
 
Zitat:

Zitat von marabu
angesichts des Code-Beispiels zu OnDrawItem() in der Online-Hilfe würde ich keine Komponente mehr suchen

Das Beispiel kenne ich, da wird direkt auf den Canvas eines Items gezeichnet. Aber ich wollte eigentlich dort sichtbare Komponenten ablegen und zwar mindestens zwei pro Item. Ich verstehe nicht so ganz, was du mir mit dem zweiten Teil deines Satzes sagen willst.

shmia 8. Aug 2007 13:14

Re: Listbox mit Objekten
 
Das Property Items der Standard Listbox-Komponente ist doch vom Typ TStrings.
In TStrings lassen sich doch pro Item ein Text und ein Objekt hinterlegen.
Wenn man pro Item mehr als ein Objekt braucht, dann braucht man pro Item eine TObjectList und packt dort die Objekte rein.
Alternativ baut man sich ein Wrapper-Objekt, das mehrere Objekte unter einem Dach vereint.
Delphi-Quellcode:
TListBoxItemObj=class(TPersistent)
   property RotesObjekt : TImage;
   property BlauesObjekt : TImage;
end;

Luckie 8. Aug 2007 13:19

Re: Listbox mit Objekten
 
Zitat:

Zitat von shmia
In TStrings lassen sich doch pro Item ein Text und ein Objekt hinterlegen.

Ja, hinterlegen, aber diese Objekte sind sichtbare Komponenten, die ich in den Items der Listbox anzeigen will. Ich will keine Instanz speichern.

marabu 8. Aug 2007 13:27

Re: Listbox mit Objekten
 
Hallo Michael,

Zitat:

Zitat von Luckie
Das Beispiel kenne ich, da wird direkt auf den Canvas eines Items gezeichnet. Aber ich wollte eigentlich dort sichtbare Komponenten ablegen und zwar mindestens zwei pro Item.

du glaubst nicht wie leicht man eine Frage missverstehen kann. Eine Frage von dir in Richtung "wie kann ich einen einzigen Pointer benutzen um auf mehr als ein Objekt zu zeigen" (siehe den Beitrag von Andreas) habe ich nicht erwartet und habe dein Problem deshalb in Richtung Darstellung interpretiert. Vor diesem Hintergrund solltest du meine Antwort verstehen. (Klartext: Icons erfüllen die Anforderungen an eine Listbox-Darstellung und lassen sich wunderbar auf eine gemeinsame Leinwand übertragen, beliebige Images sollten besser in einen Container gepackt werden).

Wenn es aber doch um die Darstellung geht, dann solltest du deine Anforderungen etwas klarer herausarbeiten.

Freundliche Grüße

Muetze1 8. Aug 2007 13:28

Re: Listbox mit Objekten
 
Zitat:

Zitat von Luckie
Ja, hinterlegen, aber diese Objekte sind sichtbare Komponenten, die ich in den Items der Listbox anzeigen will. Ich will keine Instanz speichern.

Das eine schliesst das andere nicht aus. Du kannst doch schliesslich im OnDrawItem die beiden jeweiligen Objekte (Images), welche bei dem gerade zu malenden Eintrag hinterlegt sind, malen. Oder was nun?

Luckie 8. Aug 2007 13:33

Re: Listbox mit Objekten
 
Ok, war etwas missverständlich. Aber ich denke, ich habe eine andere Lösung gefunden:
http://www.delphipraxis.net/internal...t.php?t=115903


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:10 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz