Einzelnen Beitrag anzeigen

Benutzerbild von NoGAD
NoGAD

Registriert seit: 31. Jan 2006
Ort: Weimar
325 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Menuitem und Ownderdraw und Hotkey

  Alt 16. Okt 2019, 19:40
Huhu Frühlingsrolle, schön, dich wieder einmal schreiben zu sehen


Danke für den Hinweis, ich hatte einen Fehler im Code, deshalb hatte es nicht funktioniert.

Mit folgendem Code kann ich es selbst zeichnen:

Code:
  var
    X : Integer;
    Y : Integer;
    dummy_string : string;
    dummy_string_and : String;

[..]
      if Pos( '&', dummy_string ) > 0 then
      begin
        dummy_string_and := Copy( dummy_string, 0, Pos( '&', dummy_string ) - 1 );
        ACanvas.Font.Style := [ ];
        ACanvas.TextOut( X, Y, dummy_string_and );
        dummy_string_and := Copy( dummy_string, Pos( '&', dummy_string ) + 1, 1 );
        ACanvas.Font.Style := [ fsBold, fsUnderline ];
        X := ACanvas.PenPos.X + ACanvas.TextWidth( dummy_string_and );
        ACanvas.TextOut( ACanvas.PenPos.X, Y, dummy_string_and );
        dummy_string_and := Copy( dummy_string, Pos( '&', dummy_string ) + 2, Length( dummy_string ) );
        ACanvas.Font.Style := [ ];
        ACanvas.TextOut( X, Y, dummy_string_and );
      end;

Jedoch habe ich in der Zeile:
Code:
X := ACanvas.PenPos.X + ACanvas.TextWidth( dummy_string_and );
noch einen Fehler, welchen ich beinah mit
Code:
X := ACanvas.PenPos.X + round(ACanvas.TextWidth( dummy_string_and ) * 1.125);
beheben kann. (Screenshot zeigt die Darstellung ohne * 1.125)

Fehlt mir da noch irgendein Zeichenabstand zwischen den Buchstaben?

LG Mathias
Miniaturansicht angehängter Grafiken
bildschirmfoto-vom-2019-10-16-20-37-19.png  
Mathias
  Mit Zitat antworten Zitat