Gibt es irgendeine Möglichkeit mit AutoIt die Breite eines einzelnen Zeichens zu bestimmen.
Dieses wäre in Arial oder Times. Danke schon mal im vorraus.
Zeichenbreite
-
- [ offen ]
-
Ahnungslos -
18. Juni 2008 um 21:08 -
Geschlossen -
Erledigt
-
-
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
-
danke, aber das bringt mich leider nicht weiter
wollte neben courier noch ein paar andere schriften anbieten
hat vllt noch jemand ne idee, wie das indirekt möglich wäre,
oder mit irgendeiner dll -
- Offizieller Beitrag
Die Zeichenbreite ist als Vektor im Schriftfont hinterlegt. Ist unter anderem auch abhängig vom Style (Italic, Bold, Standard).
Ich hatte schon mal versucht, das in AutoIt umzusetzen. Aber eine brauchbare Lösung hatte ich nicht gefunden. -
Was genau möchtest du denn machen?
Vllt gibt es ja auch eine andere Lösung.mfg
-
- Offizieller Beitrag
Viele Schriftsachen sind (noch) schwerer, als man denkt ;).
Z.B. gibt es auch feine Tricks wie Kerning usw. die Wortbreite beeinflussen und damit evtl. auch deine Anwendung.peethebee
-
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: