Hi,
ich kann dir zwar nur sehr bedingt helfen, aber vielleicht reicht es ja als Anstoss in die Richtige Richtung.
Setz einfach im PopUp-Menü OwnerDraw auf True. Nun kannst du für alle Einträge des PopUp-Menüs, die du färben möchtest einfach das OnDraw-Ereignis mit Code füllen und hier natürlich auch färben.
Sehr einfaches Beispiel:
Delphi-Quellcode:
procedure TForm1.Blubb1DrawItem(Sender: TObject; ACanvas: TCanvas;
ARect: TRect; Selected: Boolean);
begin
ACanvas.Brush.Color := clRed;
ACanvas.FillRect(ARect);
ACanvas.TextOut(ARect.Left + 2, ARect.Top + 2, 'TEST');
end;
Würde dir jetzt einen roten Eintrag erzeugen, auf dem Test (sehr schlecht eingerückt) steht. Das genaue einrücken vom Text kannst du natürlich durch TextWidth und TextHeight (Methoden vom Canvas) und berechnen der Mittelpunkte o.ä. erreichen. Weiß ja nicht ob die Links oder Rechtsbündig oder Zentriert angezeigt werden sollen. Na ja, dass bekommst du dann schon hin.
Hoffe es hilft schon mal
Gruß Der Unwissende