Einzelnen Beitrag anzeigen

myicq

Registriert seit: 5. Jan 2016
70 Beiträge
 
Delphi 6 Professional
 
#1

Pitch mit Textoutw und Accents ?

  Alt 12. Mai 2018, 20:48
Hallo Alle,

ich habe jetzt (fast) verstanden wie ich unter D6/D7 Unicode-Text auf eine Canvas ausgebe, und zwar mit Möglichkeit für gespiegelt, gedreht etc. Das meiste klappt schon.

Aber..

Ich möchte gern auch die Möglichkeit haben eine Pitch zu benutzen. Mit SetworldTransform kann ich jeder Zeichen schmaler machen, das geht problemlos. Aber leider unterstützt DrawTextW keine pitch-parameter.

Ich habe versucht mit TextOut (position):
Delphi-Quellcode:
    startx := 100;
    starty := 10;

    for i := 1 to length(content) do
    begin

        WideCanvasTextOut( // TNTGraphics function
           TCanvasPanel(Panel1).Canvas,
           startx,
           starty,
           content[i]

        );

        startx := startx +
            WideCanvasTextWidth(
                   TCanvasPanel(Panel1).Canvas,
                   content[i]
                  ) +
                  pitchvalue;

    end;
Klappt auch ABER geht mit zB Arabisch und Hebräisch shief. Zehe Beispiel unten:

Ich vermute das ich über CreateFontIndirectW etwas zuchen muss, aber suche eine Beispiel ?

Text ist : "َجِبُ عَلَى الإنْسَانِ"

Oben mit Textout (codebeispiel), unten mit Drawtext.
Miniaturansicht angehängter Grafiken
unicodetest.png  
  Mit Zitat antworten Zitat