Zeichenkette länge

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
__WEY
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 25
Registriert: Do, 11. Sep 2008 9:01

Zeichenkette länge

Beitrag von __WEY »

Hi Leute

Ich hab ein kleines Problem... Zwar habe ich eine Listbox die ich gewissermassen in zwei Spalten darstellen will:

TEST Test1
TEST2 Test2
TEST3 Test3

Zwischen den beiden Texten soll ein Tabulator sein (CHR(9)) Doch wird je nach Textlänge der ersten Spalte eine unterschiedliche Anzahl tabulatoren benötigt, dass die zweite Spalte untereinander steht. Nun habe ich gedacht, dass ich sagen kann, dass wenn z.B die erste Spalte 4 Buchstaben hat, dass er 2 Tabulatoren machen soll und wenn 6 Buchstaben, dann 1 Tabulator. Doch funktioniert dies nicht, da ich keine monospace Schriftart benutzen darf und so die Länge der Zeichenkette subjektiv ist (z.B Unterschied zwischen M und i)...

Lässt sich die Länge einer Zeichenkette auch noch nach anderen Kriterien als die Buchstabenlänge bestimmen (Pixel o.Ä) oder gibt es eine andere Möglichkeit? Mit MultiColumn bin ich irgendwie nicht zurecht gekommen, weil mir da die vertikale Scrollbar vollends ausgeschaltet wird

WEY
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Zeichenkette länge

Beitrag von Rolf Ramacher »

Hi

welche Schriftart hast du denn gewählt ? Hast du Arial genommen, versuch mal courier New
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
__WEY
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 25
Registriert: Do, 11. Sep 2008 9:01

Re: Zeichenkette länge

Beitrag von __WEY »

Die Software hat grundsätzlich die Schriftart Arial. Aus optischen Gründen darf ich courier new nicht einsetzten...

WEY
Benutzeravatar
Armin
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 393
Registriert: Mo, 26. Sep 2005 12:09
Wohnort: 75331 Engelsbrand
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Zeichenkette länge

Beitrag von Armin »

Hallo WEY,

das sollte doch mit ::drawMode := XBP_DRWA_OWNER möglich sein - z.B. ownerdraw.exe

Grüsse, Armin
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Zeichenkette länge

Beitrag von brandelh »

Hallo,

also am genauesten geht es, wenn du mit der GraQueryTextBox() Funktion die tatsächliche Länge eines Strings ermittelst und dann prüfst wo die Grenzen liegen.

Allerdings ist das etwas umständlich. Einfacher ist es eventuell, wenn du eine Funktion schreibst, die zählt wieviele schmale (i), mittlere (f,e,t...) und breite (m) Buchstaben dein Wort hat. Jede Art mit der ungefähren Pixelbreite berechnet sollte einen guten Anhaltspunkt für die Anzahl der chr(9) geben.
Gruß
Hubert
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12909
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Re: Zeichenkette länge

Beitrag von AUGE_OHR »

__WEY hat geschrieben:Mit MultiColumn bin ich irgendwie nicht zurecht gekommen, weil mir da die vertikale Scrollbar vollends ausgeschaltet wird
ich will ja nicht wieder damit anfangen das es sich um einen BUG handelt ...

was du eigentlich sucht ist ein Listview denn damit kann man auch MultiColumn machen.
alternative sehe ich auch nur Ownerdraw wo du mit GraQueryTextBox() die Textlänge vorher bestimmst.
gruss by OHR
Jimmy
__WEY
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 25
Registriert: Do, 11. Sep 2008 9:01

Re: Zeichenkette länge

Beitrag von __WEY »

Hey Leute! Hammerarbeit!

Vielen Herzlichen Dank für Eure rege Anteilnahme an meinem Problem! Das Problem liess sich dank 'GRAQUERYTEXTBOX' lösen! Vielen Dank!

WEY
Antworten