Seite 1 von 1

Anzahl der Zeichen pro Zeile im MLE festlegen

Verfasst: Di, 13. Feb 2018 15:55
von vorti
Hallo,
ist es möglich die Anzahl der Zeichen/Zeile im MLE festzulegen( unabhängig vom Font ) ?
Gleich noch ne Anschlussfrage. Wenn ein wordWrap ausgeführt wird, was für ein Zeilenumbruch wird da geschrieben ?

Re: Anzahl der Zeichen pro Zeile im MLE festlegen

Verfasst: Di, 13. Feb 2018 17:38
von georg
Hallo,


also mal ganz aus dem Bauch heraus, eine Anzahl Zeichen/Zeile ist bei proportionalen Fonts schon eine Herausforderung, so dass ich davon ausgehe, dass das nicht möglich ist.

Und bei den WordWraps würde ich auf eine reine Anzeige-Regelung tippen, und dass dadurch der im MLE erfasste String nicht beeinflusst wird.

Re: Anzahl der Zeichen pro Zeile im MLE festlegen

Verfasst: Di, 13. Feb 2018 21:08
von AUGE_OHR
vorti hat geschrieben: Di, 13. Feb 2018 15:55 ist es möglich die Anzahl der Zeichen/Zeile im MLE festzulegen( unabhängig vom Font ) ?
Gleich noch ne Anschlussfrage. Wenn ein wordWrap ausgeführt wird, was für ein Zeilenumbruch wird da geschrieben ?
eine direkt Grössen Beschränkung, wie o:BufferSize, gibt es beim XbpMLE nicht.

mittels API Function EM_LIMITTEXT Message kann man die Anzahl von Zeichen limitieren.
https://msdn.microsoft.com/de-de/librar ... s.85).aspx

---

man kann aber die aktuelle Zeile / Spalte des Cursor im XbpMLE bestimmen mit

Code: Alles auswählen

::oMemotext:keyBoard := {|nKey, uNIL, oSelf| ::MyKey(nKey,oSelf) }

METHOD XXX:MyKey(nKey,oMLE)
LOCAL nEnde := oMLE:pos()
LOCAL nLine := oMLE:lineFromChar(nEnde)
LOCAL nZeil := oMLE:charFromLine(nLine)
LOCAL cText := "Row "+LTRIM(STR(nLine))+" / Col "+LTRIM(STR(nEnde-nZeil))
---

ein Umbruch in einem XbpMLE erfolgt automatisch

Re: Anzahl der Zeichen pro Zeile im MLE festlegen

Verfasst: Di, 13. Feb 2018 21:24
von Tom
Ein MLE begrenzt den Text in der Breite durch seine Größe; der Umbruch ist rein optisch und verändert sich mit der Größenänderung des MLEs/Dialogs. Natürlich wird auch umgebrochen, wenn der Text Umbrüche enthält, also Zeilenschaltungen.
Man kann im Handler ständig die Puffergröße auslesen und darauf reagieren, etwa nach dem Erreichen eines Limits alle weiteren Zeichen zurückweisen, wodurch man die Gesamtlänge des Textes begrenzen könnte. Aber ein MLE ist kein MemoEdit, sondern ein Control für die Darstellung und Bearbeitung von Fließtext. Das Umbruchverhalten ist übrigens das gleiche wie beim Textstatic mit Wordbreak.
Wer mehr will, muss Controls einbetten, die mehr können, z.B. TX Text Control oder ähnliche.

Re: Anzahl der Zeichen pro Zeile im MLE festlegen

Verfasst: Mi, 14. Feb 2018 8:47
von vorti
Danke für die Antworten.
Das mit dem Puffer war auch mein Ansatz, allerdings war ich mit allen Lösungen nicht 100%ig zufrieden.
Gab es in Xbase++ nicht eine Klasse, die so ne Art HilfePanel bereitstellt (keine Ahnung wie man das nennt, ich meine so ein kleines Feld mit Text was angezeigt wird, als wenn man auf google die Maus über das Suchfeld hovert ). Weiß jemand wie die heißt?

Re: Anzahl der Zeichen pro Zeile im MLE festlegen

Verfasst: Mi, 14. Feb 2018 8:53
von Martin Altmann
Hmm,
entweder meinst Du das Mäuseschwänzchen (Tooltip genannt), oder die :CueBanner bzw. :Balloontip (beides erst in der 1.9 SL1 dazugekommen).

Viele Grüße,
Martin

Re: Anzahl der Zeichen pro Zeile im MLE festlegen

Verfasst: Mi, 14. Feb 2018 9:03
von vorti
Danke Martin, ich meinte den Balloontip :)