Einzelnen Beitrag anzeigen

gfjs

Registriert seit: 8. Dez 2005
Ort: Hohenkammer
298 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Memo Zeilenanzahl begrenzen

  Alt 11. Mär 2006, 05:44
Ich sehe dabei folgendes Problem:

Label.Text ist ein String, den Du Dir aus den Memo.Lines zusammenstellst. Wieviel Platz dieser String im Label benötigt, hängt aber m.E. nicht unbedingt von der Länge des Strings ab. Zwei Strings mit gleicher Länge werden vermutlich unterschiedlich große Labels benötigen, wenn der eine String überwiegend kurze, der zweite aber überwiegend lange Wörter enthält. Bei WordWrap wird ja nicht getrennt, sondern das ganze Wort in die nächste Zeile geschrieben, so dass viele lange Wörter im zweiten String zu viel leerem Platz in den einzelnen Zeilen führen können. Dadurch werden natürlich mehr Zeilen benötigt.

Ich kann das leider nicht ausprobieren, da ich hier im Büro kein Delphi installiert habe. Nachdem ich noch Anfänger bin, weiß ich auch nicht, ob sich mein Lösungsvorschlag realisieren lässt. Ich würde es so versuchen:

Statt des Labels ein weiteres Memo verwenden. Die Hintergrundfarbe des Anzeige-Memos auf die Farbe der übergeordneten Komponennte (z.B. eines Panels, auf dem das Memo liegt) setzen. ReadOnly := true. TabStop := false. Größe wie das Eingabe-Memo. Jetzt muss nur noch verhindert werden, dass in das Eingabe-Memo mehr geschrieben wird als erlaubt. Ich weiß nicht aus dem Stegreif, wie man die Eingabe in ein Memo begrenzen kann - vielleicht so: "if Memo1.Lines.Count > MaxZeilenzahl then Memo1.ReadOnly := true" ?!

Ich hoffe, ich liege nicht allzu falsch.

mfg gfjs
Mein neues Motto (von "Unbekannt"):
Gewinnen: Wenn Du kannst - Verlieren: Wenn Du musst - Aufgeben: NIE!
  Mit Zitat antworten Zitat