Zitat von
Sunlight7:
Ich lehn mich mal weit aism Fenster...
(hoffentlich hat wer n Sprungtuch aufgespannt)
Delphi-Quellcode:
procedure DrawItem(lP: Integer);
...
CopyMemory(@lP, @PDis, SizeOf(@PDis));
end
Ganz durchblicke ich Deinen Code nicht auf die Schnelle, aber überschreibst Du damit am Ende von DrawItem nicht die Strukture, die Du im WndProc/WM_DRAWITEM er lParam bekommst mit den veränderten Werten?
Schon ne?
Ich schreibe ihn wieder zurück .. Jo
Anfang der Function
CopyMemory(@PDis, @lP, SizeOf(@PDis));
Wenn fertig zurücksetzen.
CopyMemory(@lP, @PDis, SizeOf(@PDis));
Kann mir das vereinfachen in dem ich mit dem PDIS auf lP zeige
könnte mir dann CopyMemory sparen.
PDis := Pointer(lP);
Das problem mit dem Menu hab ich geregelt allerdings bekomme ich so kein Event mehr auf die ListBox.
Muss vorher prüfen ob PDis^.CtlType ODT_LISTBOX oder ODT_MENU ist damit kann ich das falsche OwnerDraw abfangen.
gruss Emil