Thema: Delphi PopupMenu u. Caption (-)

Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: PopupMenu u. Caption (-)

  Alt 24. Sep 2005, 02:53
Da dürfte wohl nur selber zeichnen helfen. Ich habe mal was gemacht:

Delphi-Quellcode:
procedure TForm1.mitStrich1MeasureItem(Sender: TObject; ACanvas: TCanvas;
  var Width, Height: Integer);
begin
  // etwas breiter machen, damit es nach was aussieht
  Width := Length((Sender as TMenuItem).Caption) + 100;
end;


procedure TForm1.mitStrich1DrawItem(Sender: TObject; ACanvas: TCanvas;
  ARect: TRect; Selected: Boolean);
begin
  // zwei versetzte Linien zeichen für den 3D Effekt
  ACanvas.Pen.Color := clBtnShadow;
  ACanvas.MoveTo(2, ARect.Bottom - ARect.Top div 2 - 3); // - 3 -> Die Linie sitzt etwas zu weit unten
  ACanvas.LineTo(ARect.Right - 2, ARect.Bottom - ARect.Top div 2 - 3); // - 3 -> Die Linie sitzt etwas zu weit unten
  ACanvas.Pen.Color := clWhite;
  ACanvas.MoveTo(2, ARect.Bottom - ARect.Top div 2 - 2);
  ACanvas.LineTo(ARect.Right - 2, ARect.Bottom - ARect.Top div 2 - 2);
  // Und den Text mittig drüber schreiben
  DrawText(ACanvas.Handle, PChar((Sender as TMenuItem).Caption), Length((Sender as TMenuItem).Caption), ARect,
    DT_CENTER);
end;
Du musst nur noch das entsprechenden MenüItem auf OwnerDraw = True stellen und den obigen Code in die entsprechenden Ereignissroutinen kopieren. Ich vermute mal, das soll so was wie eine Überschrift werden, deshalb dachte ich, der 3D Effekt wäre ganz passend.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat