So, zuallererst mal muss ich ein Lob an das Forum aussprechen, ich nun schon eine Weile regelmäßig hier rein und hab schon viele Antworten gefunden, aber nun werd ich mich wohl doch mal zum selbst tippen bequemen... Da ich hier auch nach langem Suchen keine ähnliche Anfrage gefunden hab (oder mich einfach zu blöd anstelle

), muss ich jetzt auch mal eine Frage fragen:
Ich hab hier ein Programm, dass u.a. Schriften aus einem .dxf importiert. Standardmäßig werden die Schriftarten im Programm als 'Courier New' ausgegeben. Erstellt wird die Schrift per
Quelltext
1: 2:
| LF.lfFaceName := 'Courier New'; font := TGPFont.Create(canvas.Canvas.Handle, PLogfontA(@LF)); |
lfFaceName ist vom Typen array[0..LF_FACESIZE - 1] of AnsiChar; (enthalten in der Unit Windows).
Nun möchte ich das Ganze aber für den User etwas variabler machen, so dass er bei den importierten Layern die Schriftarten, -größe usw. selbst wählen kann. Über den FontDialog komm ich an die Schriftart ran: FontDialog.Font.Name, Name ist vom Typ TFontName, was letztlich nix anderes als ein String ist.
Nun kann ich dem LF.lfFaceName leider nicht diesen String aus dem FontDialog zuweisen:
| Zitat: |
| Inkompatible Typen: 'Array' und 'TFontName' |
Gibt es dafür irgendeine Funktion?
Ich hatte zuerst schon probiert, anstelle LF: TLogFontA; (bzw. LF: TLogFont;) ein LF: TLogFontW; zu nehmen, um dann StringToWideChar(FontDialog.Font.Name, LF.lfFaceName, 32); zu nutzen, nur leider ändert sich die Schrift dann überhaupt nicht, da hab ich auch den Fehler nicht gefunden...
Weiß da jemand weiter? Gibt es da eine Funktion oder krieg ich das nur über Umwege hin?

"Kekskrümel im Bett pieksen weniger, wenn man vorher darauf uriniert", meinte mal ein Kumpel...