das hier ist das lazarus forum.
ne, soweit war ich schon. es ging darum, das popupmenü unter dem dropdown-button mit custom font+hintergrundfarbe darzustellen.
ha! ich habs hingekriegt. zwar nicht über owner-draw aber ich bin trotzdem mit dem ergebnis zufrieden. siehe screenshot.
wenn man mit der maus über die einzelnen "buttons" geht, wird der aktive grau und bei klick auf einen wird dieser gedrückt und dann verschwindet das untermenu.
das ganze untermenü ist ein formular mit 3 panels als buttons. ich hätte auch normale buttons nehmen können, aber da kann man ja wieder nicht die farbe ändern.
ist zwar ein gefrickel, aber besser als nichts.
ja, der button untertützt eigene fonts, das tpopupmenu, was dazugehört aber nicht. und das ergebnis sieht dann beschissen aus.
aus dem grund musste ich leider diese krücke programmieren, weil lazarus einfach nicht fähig ist ein dropdown-button(in diesem begriff ist auch das aufklappende menü mit eingeschlossen!) mit eigenem font darzustellen. es hätte mir schon gereicht, wenn ich beim tpopupmenü die owner-draw eigenschaft wie bei delphi hätte setzen können. aber natürlich gibt es diese eigenschaft unter lazarus nicht. und andere lösungen habe ich nicht gefunden bzw. es interessierte irgentwie auch keinen(hab das problem auch im englischen lazarus-forum zur sprache gebracht -keine hilfe, versucht den autor des tpopupmenü-codes zu kontakten -emailadresse existiert nicht mehr usw.). irgentwann hatte ich einfach keinen bock mehr tagelang im internet zu recherchieren und einfach keine lösung zu finden. ok, ich hätte mir delphi xe2 kaufen können, aber das kostet dann schon mal 1000 bucks und sqlite-unterstützung hat es von haus aus auch nicht. mit meiner lösung hier kann ich für alle lazarus-user eine lösung anbieten die
a) solide funktioniert und optisch gut aussieht
b) jetzt verfügbar ist und nicht erst in x jahren
wenn interesse besteht stelle ich den code und die beschreibung dazu gerne hier rein. das ganze besteht aus einem formular und es sind auch einige anpassungen im aufrufenden code nötig.