Wie zeichnet man in Delphi Text mit unterschiedlicher Schriftformatierung gleichzeitig?

8

Ich habe DrawText für all meine "text in rectangle" -Ausgabebedürfnisse verwendet, aber ich sehe keine Möglichkeit, eine Zeichenkette zu zeichnen, zum Beispiel mit jedem anderen Wort fett oder von anderer Farbe, oder noch schlimmer, unterschiedliche Hintergründe für die zufällig ausgewählten Wörter. Es gibt wahrscheinlich keine einzige Prozedur, die das tun kann, soweit ich sehen kann, ich könnte falsch liegen, das ist der Hauptpunkt dieser Frage. Kann jemand auf Verfahren hinweisen, die für jemanden von Interesse sein könnten, der solche Effekte erzielen möchte? Außerdem, wenn ich richtig bin und es keine einfache Möglichkeit gibt, dies zu tun, was wäre der empfohlene Weg? Jedes Wort einzeln zu zeichnen und dann zu versuchen, all das zusammen zu kleben, scheint ein Albtraum zu sein, wenn man anfängt, über Probleme nachzudenken, die daraus entstehen können: richtiger Textausrichtung auf einer horizontalen Linie, wenn man verschiedene Schriftarten oder Schriftgrößen hat. ..

Ich habe Delphi xe3; wenn jemand die Formulierung meiner Frage und / oder des Textes verbessern kann, bitte tun Sie das.

    
Raith 17.04.2013, 13:26
quelle

2 Antworten

17

Sie erhalten Hilfe von der VCL, da die Methode TCanvas.TextOut die x -Koordinate der Stiftposition um die Breite der Ausgabezeichenfolge erhöht:

%Vor%

Screenshot http://privat.rejbrand.se/canvastextpos.png

Wie auch immer, wenn Sie erweiterte Textausgabe-Routinen benötigen, werfen Sie einen Blick auf DirectWrite ?

    
Andreas Rejbrand 17.04.2013, 13:38
quelle
2

Haben Sie erwogen, Richedit mit seinen reichhaltigen Formatierungsfähigkeiten zu verwenden? Wenn Sie Text im Zeichenbereich, nicht im Fenster, zeichnen müssen, ermöglicht die EM_FORMATRANGE-Nachricht das Kopieren einer grafischen Darstellung von formatiertem Text.

    
MBo 17.04.2013 13:38
quelle

Tags und Links