Ich habe einmal versucht einen Sisyphus-Automaten zu bauen:
Wenn die Listbox gefüllt ist, muss in einer Schleife festgestellt werden,
welches die Zeile mit dem längsten Text ist (Len-Wert).
Nehmen wir an, es ist die 4.Zeile, dann muss festgestellt werden,
wo die halbe Höhe der 4.Zeile und der rechte Rand der betr. Spalte sind.
Nun werden in einer Schleife die Pixel auf halber Höhe der 4.Zeile
vom rechten Rand der betr. Spalte rückwärts daraufhin geprüft,
ob sie ungleich weiß sind. Der erste Treffer liegt am Ende des Strings,
der Wert gibt die Länge des Strings an.

 dim i as integer

aktuY = ListBox1.Top + 21 + ListBox1.DefaultRowHeight *3 + Listbox1.DefaultRowHeight /2
 aktuX = Listbox1.Left + Listbox1.Column(0).WidthActual-2

 for i =1 to ListBox1.Column(0).WidthActual
   if Graphics.Pixel(aktuX,aktuY) <> &cFFFFFF then
     msgbox str(aktuX)
     exit for
   end if
   aktuX = aktuX -1
 next

Die Höhe der Prüflinie unterstellt, dass der letzte Buchstabe des Strings
die größte Breite tatsächlich in der Mitte hat. Bei einem T oder einem L
trifft das dann leider nicht zu. Für hundertprozentige Sicherheit müsste man
mehrere Prüfschleifen mit jeweils unterschiedlicher Höhe ablaufen lassen.
Aber wenn man hinter dem letzten Buchstaben noch einige Pixel Platz lässt,
wirds wohl schon ganz gut passen.

beste Grüße, Christian Hahn.

----- Original Message ----- From: "Enno Bussmann" <[email protected]>
To: "Realbasic NUG German" <[email protected]>
Sent: Monday, October 17, 2011 5:50 PM
Subject: Re: Was macht eigentlich self.Graphics.StringWidth(text)


Kleine korrektur: Ich glaube, dass sich das erst dann zufriedenstellend
lösen lassen wird, wenn sich irgendjemand daran setzt  und  den faktor
für jeden einzelnen schriftschnitt ausrechnet = sisyphus lässt grüssen.

Am Mon Oct 17 17:24:07 2011 schrieb nobe:
Ich glaube nicht, dass sich erst dann zufriedenstellend lösen lassen wird, wenn sich irgendjemand daran setzt und den faktor für jeden einzelnen schriftschnitt ausrechnet = sisyphus lässt grüssen ;-)

enno

Am Mon Oct 17 17:01:42 2011 schrieb Stefan Mettenbrink:
Stefan Sicurella wrote:

das Problem hab eich auch schon seit Jahren, leider auch mit stringheight Du musst dich über die Anzahl der Zeichen der tatsächlichen Größe annähern… anders geht es nicht

:-(
Für andere Bereiche habe ich bisher einfach 5-10% hinzugefügt. In diesem Fall finde ich das blöd. - Genaugenommen finde ich das immer blöd!

Hast Du das mal gemeldet?

MfG, Metti.






Antwort per Email an