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