Einzelnen Beitrag anzeigen

Volker Z.

Registriert seit: 4. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#2

AW: Was mache ich hier falsch (Ownerdraw TToolbar)?

  Alt 18. Apr 2014, 22:56
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ß
Volker Zeller
  Mit Zitat antworten Zitat