Hi,
habe vorhin angefangen das Ding einfach irgendwie zu implementieren, was (sehr unerwartet) sehr gut funktioniert hat.
Beim optimieren bin ich jedoch auf
FMX.TextLayout gestossen welche die Klasse
TTextLayout beinhaltet, die es anscheinend ermöglicht auf jeder Platform einen Text mit gewünschtem Font in ein TPathData umzuwandeln.
Beispielcode mit leerem Formular (Nur das OnPaint Event reicht zum testen):
Delphi-Quellcode:
procedure TForm1.FormPaint(Sender: TObject; Canvas: TCanvas;
const [Ref] ARect: TRectF);
var
LTextLayout : TTextLayout;
LPathData : TPathData;
begin
Canvas.Font.Family := 'Comic Sans MS';
Canvas.Font.Size := 128;
LTextLayout := TTextLayoutManager.DefaultTextLayout.Create;
try
LPathData := TPathData.Create;
try
LTextLayout.Text := '@';
LTextLayout.Font := Canvas.Font;
LTextLAyout.ConvertToPath(LPathData); // Magic
Canvas.Fill.Color := $FF0070FF;
Canvas.FillPath(LPathData,1);
Canvas.Stroke.Color := $FF000000;
Canvas.DrawPath(LPathData,1);
finally
LPathData.Free;
end;
finally
LTextLayout.Free;
end;
end;
Mehr infos:
http://riversoftavg.com/blogs/index....text-with-fmx/
Ich hoffe das auch andere hiervon Gebrauch machen können.
Ich mag es wie Firemonkey schon sehr vieles von Haus aus mitbringt auch wen einiges ab und zu mal buggy ist aber seit ich für Freizeitprojekte Firemonkey benutze, schreibe ich viel weniger Nebensächlichen Code den man zwar immer braucht, aber auch immer wieder neu schreibt weil das meist nur einige Zeilen sind. Da bleibt mehr Zeit für das eigentliche Vorhaben
Freundliche Grüsse