Moin DelphiUser,
da die Routine grundsätzlich funktioniert, kann ich mir nur noch vorstellen, dass die Listbox mit LBS_OWNERDRAWFIXED oder LBS_OWNERDRAWVARIABLE aber ohne LBS_HASSTRINGS erstellt wurde, so dass Du statt des Textes die mit dem Eintrag zusammenhängenden Daten erhältst.
Prüf' das doch mal:
Delphi-Quellcode:
if (GetWindowLong(
Handle,GWL_STYLE)
and (LBS_OWNERDRAWFIXED
or LBS_OWNERDRAWVARIABLE)) <> 0
then begin
if (GetWindowLong(
Handle,GWL_STYLE)
and LBS_HASSTRINGS) = 0
then begin
ShowMessage('
OWNERDRAW ohne STRINGS');
end else begin
ShowMessage('
OWNERDRAW mit STRINGS');
end;
end else begin
ShowMessage('
Kein OWNERDRAW');
end;
Ich vermute mal, dass Du 'OWNERDRAW ohne STRINGS' erhältst.
Ob, und wie man dann die Strings auslesen kann, weiss ich allerdins auch nicht.