Zeichenbreite

  • Mit AutoIt ist es nicht möglich denke ich.
    Wenn du imemr gleichbreite Zeichen haben willst, solltest du dir einen entsprechenden Font raussuchen....
    Wenn du etwas Tabellenmäßiges darstellen willst, versuch es mit dem Tabulatorenzeichen (@tab)

    Ich hofe ich konnte helfen


    mfg

  • Was genau möchtest du denn machen?
    Vllt gibt es ja auch eine andere Lösung.


    mfg

  • es geht mir darum einen zeilenwechsel zu ermöglichen wenn der rechte blattrand erreicht ist

    die zeichen können verschiedene schriftarten haben (auch kursiv und fett), also will ich jedes zeichen einzeln vermessen und wenn der rand erreicht ist eine neue zeile beginnen

    da ganze findet nicht in einem steuerelement statt, sondern nur rein theoretisch

    edit: werd mich doch mal mit fonts beschäftigen müssen

  • So, konnte das Problem lösen.

    Hier eine kleine Beschreibung falls es mal jemand benötigt:

    1. Mit dem Programm Typolize die Zellbreite der Buchstaben bestimmen.
    Dazu die entsprechende Schriftart laden und unter "hmtx" die "Advance Width" übernehmen.
    !!! Die Glyph-Nummer entspricht nicht der ASCII-Nummer der Zeichens !!!
    Die Glyph-Nummer eines Zeichens könnt Ihr aus "glyf" übernehmen.

    Link: http://www.ubisys.de/support_u_downloads.html

    2. Ein Array Anlegen mit den Zellbreiten ("Advance Width"):

    Dim $Arial[256] = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 569, 569, 727, 1139, 1139, 1821, 1366, 391, 682,
    682, 797, 1196, 569, 682, 569, 569, 1139, 1139, 1139, 1139, 1139, 1139,
    1139, 1139, 1139, 1139, 569, 569, 1196, 1196, 1196, 1139, 2079, 1366,
    1366, 1479, 1479, 1366, 1251, 1593, 1479, 569, 1024, 1366, 1139, 1706,
    1479, 1593, 1366, 1593, 1479, 1366, 1251, 1479, 1366, 1933, 1366, 1366,
    1251, 569, 569, 569, 961, 1139, 682, 1139, 1139, 1024, 1139, 1139, 569,
    1139, 1139, 455, 455, 1024, 455, 1706, 1139, 1139, 1139, 1139, 682, 1024,
    569, 1139, 1024, 1479, 1024, 1024, 1024, 684, 532, 684, 1196, 1139, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

    ; hier nur die wichtigsten Zeichen von Arial (Standardformatierung)

    3. Berechnung der Breite in Millimeter:

    Code
    Dim $Zeichen = "W"
    Dim $SG = 12          	;Schriftgröße
    
    
    $Breite = Round($SG * $Arial[Asc($Zeichen)] / 2048.0929, 3)
    ;Zeichenbreite = Schriftgröße * Zellbreite / 2048.0929