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/)
-   -   Delphi Fremde Owner-Draw-Listbox auslesen (https://www.delphipraxis.net/71834-fremde-owner-draw-listbox-auslesen.html)

Tommer 21. Jun 2006 17:15


Fremde Owner-Draw-Listbox auslesen
 
Hallo Leute,

ich bin gerade am rumprobieren mit verschiedenen Window-Messages bezüglich einiger Controls. Nun hat sich das folgende Problem ergeben. Die Elemente von Standard-Listenfeldern anderer Programme kann ich per LB_GETTEXT ordentlich auslesen. Nur bei Listboxen die z.B. Icons enthalten, also eigene Draw-Routinen geschrieben wurden, erziele ich nicht den gewünschten Effekt und es kommen für jedes Element nur 4 Zeichen lange Buchstabensalate heraus :). Ich gehe mal davon aus, dass man das dann nicht mit LB_GETTEXT machen kann :)
Gibt es dort trotzdem eine Methode dies zu bewerkstelligen?

Danke im Voraus
Tom

winowig 22. Jun 2006 10:14

Re: Fremde Owner-Draw-Listbox auslesen
 
Hallo Tom,

ich verwende auch viele Owner-Draw Listboxen. Bei solchen Listboxen wird der Inhalt erst im OnDraw-Ereignis gezeichnet. In der Listbox sind daher in der Regel keine Daten gespeichert. Manchmal schreibe ich noch einen Index in die Liste mit dem ich dann den korrekten Inhalt zeichnen kann. Oft stehen aber nur leere Zeilen drin und der Inhalt ergibt sich aus dem Index des Listeneintrages. Es hängt also sehr vom jeweiligen Programmierer der Listbox ab, ob du mit LB_GetItem was bekommst oder nicht.

Viele Grüße
Ingolf

Tommer 22. Jun 2006 10:24

Re: Fremde Owner-Draw-Listbox auslesen
 
also recht kompliziert daran zu kommen oder? vll über LB_GETITEMDATA die rohdaten auslesen? ich mein windows muss doch auch wissen was drin steht also irgendwie muss man doch da rankommen...oder löst es halt nur die OnDraw-Prozedur auf und der Rest wird vom Programm erfüllt? wenn nich ist es auch egal - war halt nur mal ausprobieren...

gruß tom

marabu 18. Jan 2007 09:14

Re: Fremde Owner-Draw-Listbox auslesen
 
Hallo Tom,

Ingolf hat es schon geschrieben, aber du magst es wohl nicht glauben: Eine ListBox mit einem OwnerDraw-Style hat in der Regel keine Itemdaten, nur einen ItemCount. Nur wenn die ListBox trotzdem auch als Daten-Container benutzt wird, kannst du den Item-Text auslesen. Findest du keinen Text, dann hat der Entwickler die Daten in einer internen Liste gespeichert und du siehst nur noch ein Bild auf dem Canvas.

Grüße vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 11: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