TListBox OnDrawItem auf Win&Mac ?

Rund um die LCL und andere Komponenten
Antworten
xos
Beiträge: 13
Registriert: Mi 26. Dez 2007, 17:49
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Schweiz

TListBox OnDrawItem auf Win&Mac ?

Beitrag von xos »

Hallo Leute,
versuche gerade ein Lazarus Programm von Win auf Mac zu portieren. Als eingefleischter Windianer kämpfte ich mich erstmal durch die Installation auf einem neuen Mac mini, was tun sich da Mac Programmierer nur an… Eigentlich läuft nun Lazarus auf dem Mac fast wie gewünscht.
Nun geht es aber um die Nettigkeiten die nicht wie gewöhnt funktionieren. Mein erstes Problem ist im OnDrawItem einer TListBox. In der aListBoxDrawItem Procedure will ich den Hintergrund und natürlich den ganzen Inhalt selber gestalten. Das funktioniert mit Win ohne Probleme.

Code: Alles auswählen

 
if (odSelected in State)
then aListBox.Canvas.Brush.Color:=clHighlight
else aListBox.Canvas.Brush.Color:=clDefault;
 
aListBox.Canvas.Brush.Style:=bsSolid;
aListBox.Canvas.FillRect(aRect);
 
aListBox.Canvas.TextOut(....
....
 

Auf dem Mac geht das aber so nicht!? Das zuletzt selektierte Element geht immer in den odSelected Teil obwohl im Debugger State=1 angegeben wird. Das selektierte Element hat aber laut Debugger jeweils State=17.
Im Win Debugger wird ja State ausführlich dargestellt so mit [ODSELECTED,ODFOCUSED,ODNOACCE…]. Im Mac Debugger eben nur Wert 0, 1 oder 17.

Kennt sich da jemand etwas aus?

mac mini, 10.10 Yosemite
Win7
Lazarus 1.6 1st Release Candidate auf beiden Rechnern

Gruss
Eduardo

Antworten