Hallo,
Zitat:
Was mir nicht gelingt, ist die Fontfarbe auf clBlack zu setzen (verwende Canvas.pen.color, das hat aber keine Auswirkungen), wenn das Menü ausgewählt ist. Bleibt immer weiß. Auch das Setzen von Toolbar1.font.color := clBlack hat keine Auswirkungen.
Mit Canvas.Pen.Color kann das nix werden (in der Eigenschaft Pen wird festgelegt, wie Linien und Umrisse gezeichnet werden). Das Setzen von Toolbar1.font.color hätte schon Auswirkungen - zwar nicht wirklich die, von Dir gewünschte -, wenn da nicht die Zuweisung
Toolbar1.Canvas.Font.Color := clWhite;
in der 6. Zeile der Zeichenroutine wäre.
Die Textfarbe für das MenuItem unter dem Mauszeiger wird über Toolbar1.Canvas.Font.Color festgelegt. Also so (gekürzt):
Delphi-Quellcode:
procedure THauptformular.ToolBar1CustomDraw(Sender: TToolBar;
const ARect: TRect;
var DefaultDraw: Boolean);
var
fc : TColor;
begin
fc := Toolbar1.Canvas.Font.Color;
for L := 0
to MainMenu1.Items.Count - 1
do begin
if MouseInRect(
tp.X,
tp.y, ar.Left-5, r.Top, ar.Right-5, ar.Bottom)
then begin
Toolbar1.Canvas.Font.Color := clBlack;
DrawText (Toolbar1.Canvas.Handle, Pchar (s), -1, r, DT_Left + DT_VCenter);
Toolbar1.Canvas.Font.Color := fc;
break;
end;
end;
end;
Gruß