![]() |
Memo, Texteingabebeschränkung
Hallo zusammen,
ich habe gerade mit TMemo und SynEdit rumgespielt, doch noch keine Lösung für folgende Aufgabenstellung gefunden: Ich brauche eine Möglichkeit, in einem Memo Text mit einer festen Zeichenbreite einzugeben, der auf 19 Zeilen und 40 Zeichen pro Zeile begrenzt ist. Wird beim Schreiben über das 40. Zeichen geschrieben, soll das komplette Wort in der nächsten Zeile beginnen. Selbstverständlich sollen auch nicht mehr als 19 Zeilen möglich sein. Viele Grüße Igotcha |
Re: Memo, Texteingabebeschränkung
Kleiner "push", da ich noch keine Lösung gefunden habe.
|
Re: Memo, Texteingabebeschränkung
Delphi-Quellcode:
so kannst du den maximalen inhalt des memos festlegen
memo1.maxlength:= 19*40
Delphi-Quellcode:
word wird am ende in nächste zeile geschrieben
wordwarp:= true
Zitat:
|
Re: Memo, Texteingabebeschränkung
Zitat:
Ich brauche diese 40 Zeichen-Beschränkung deshalb, da das dann gespeicherte File in einer anderen Anwendung eingelesen wird, die erwartet, dass maximal 40 Zeichen in einer Zeile stehen und danach eine neue Zeile kommt, bis maximal 19 Zeilen. Dazu würde ich dann den Inhalt des Memos per Lines[x] (mit maximal 40 Zeichen) manuell in eine Textdatei schreiben. Gruß Igotcha |
Re: Memo, Texteingabebeschränkung
Du kannst per .CaretPos die Zeile/Spalte herausfinden, in denen sich der Cursor momentan befindet.
Wenn der Spalten-Wert 40 ist, musst du nun (z.B. im .OnChange-Ereignis) dafür sorgen, dass der Cursor in die nächste Zeile kommt. (gibt es nicht die Möglichkeit, einen "virtuellen" Tastendruck an eine Komponente zu schicken?). |
Re: Memo, Texteingabebeschränkung
wordwrap = true macht nur in der Darstellung im TMemo einen "Zeilenumbruch" -
liest man das TMemo dann aus gibt es nur eine lange Zeile. Grüße Klaus |
Re: Memo, Texteingabebeschränkung
Danke für die Kommentare erstmal, aber ich möchte mich ja gerade nicht manuell (also durch Cursorabfrage, o.ä.) darum kümmern müssen, ob ich in die nächste Zeile muss - vor allem was ist, wenn der Anwender ein Zeichen löscht ;-)
Gruß Igotcha |
Re: Memo, Texteingabebeschränkung
Den geringsten Aufwand verursacht sicherlich eine Prüfung auf Knopfdruck, nachdem der Text erfasst wurde. Dabei ist die Funktion WrapText() aus der Unit StrUtils sicher hilfreich.
Grüße vom marabu |
Re: Memo, Texteingabebeschränkung
Zitat:
Falls die Zeilenzahl dann zu groß wird musste hald ne Meldung ausgeben. Evtl. nicht die schönste aber ne einfache Lösung ^^ |
Re: Memo, Texteingabebeschränkung
Zitat:
Du möchtest ja auch nicht, dass Word erst beim Speichern sagt, dass Du irgendwo zuviel Text eingegeben hast, o.ä. ;-) Gruß Igotcha |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz