Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TMemo maximale Zeilen begrenzen (https://www.delphipraxis.net/119346-tmemo-maximale-zeilen-begrenzen.html)

Alfonso3 25. Aug 2008 09:33


TMemo maximale Zeilen begrenzen
 
hallo,

möchte meine TMemo einschränken, dass der Benutzer max. 9 Zeilen eingeben kann, weiß aber ned recht wie ich das realisieren soll, ich bin soweit dass ich im OnKeyPress TMemo.lines.count abfange aber danach steh ich an..

Kann da jemand helfen wie ich das am besten löse, mit der MaxLength komm ich ja auch ned weit.

lg,
Alfonso3

himitsu 25. Aug 2008 09:41

Re: TMemo maximale Zeilen begrenzen
 
du könntes ja versuchen erstmal in OnKeyUp und OnKeyDown den Key auf 0 zu setzen, wenn die maximale Anzahl an Zeilen erreicht ist

Delphi-Quellcode:
// direkt mit Memo-Name
if Memo1.Lines.Count >= 9 then Key := 0;

// allgemein (Memo via Sender)
if TMemo(Sender).Lines.Count >= 9 then Key := 0;
und dann mußt du noch das Problem lösen, weöches auftritt, wenn jemand Zeilen in das Memo reinkopiert :angel2:

_frank_ 25. Aug 2008 09:53

Re: TMemo maximale Zeilen begrenzen
 
man könnte ja auch im OnChange alle zeilen löschen die zuviel sind :D dürfen natürlich keine wichtigen zeilen sein...

Delphi-Quellcode:
procedure TForm1.Memo1Change(Sender:TObject);
var c,i:integer;
begin
  c:=(sender as TMemo).Lines.count;
  if c>9 then
  begin
    for i:=c-1 downto 9 do
    begin
      (sender as TMemo).Lines.Delete(i);
    end;
  end;
end;
HTH Frank

DeddyH 25. Aug 2008 09:57

Re: TMemo maximale Zeilen begrenzen
 
Das lässt sich aber kürzen:
Delphi-Quellcode:
for i:=(sender as TMemo).Lines.count-1 downto 9 do
  (Sender as TMemo).Lines.Delete(i);

hathor 25. Aug 2008 10:35

Re: TMemo maximale Zeilen begrenzen
 
Delphi-Quellcode:
if Memo1.Lines.Count >maximaleZeilenzahl then Memo1.Enabled :=false;

Deep-Sea 25. Aug 2008 10:38

Re: TMemo maximale Zeilen begrenzen
 
Zitat:

Zitat von hathor
Delphi-Quellcode:
if Memo1.Lines.Count >maximaleZeilenzahl then Memo1.Enabled :=false;

War hoffentlich nicht dein ernst?! :shock: Weil wie will man danach noch etwas editieren? Programm neu starten? ...

Ggf. hilft auch das: http://www.swissdelphicenter.ch/de/showcode.php?id=964

hathor 25. Aug 2008 10:53

Re: TMemo maximale Zeilen begrenzen
 
Zitat:

Zitat von Deep-Sea
Zitat:

Zitat von hathor
Delphi-Quellcode:
if Memo1.Lines.Count >maximaleZeilenzahl then Memo1.Enabled :=false;

War hoffentlich nicht dein ernst?! :shock: Weil wie will man danach noch etwas editieren? Programm neu starten? ...

Ggf. hilft auch das: http://www.swissdelphicenter.ch/de/showcode.php?id=964

Von Editieren war nie die Rede...

Deep-Sea 25. Aug 2008 10:55

Re: TMemo maximale Zeilen begrenzen
 
Zitat:

Zitat von hathor
Von Editieren war nie die Rede...

Zitat:

Zitat von Alfonso3
dass der Benutzer max. 9 Zeilen eingeben kann

Für mich sieht das schon so aus, als sollte der Benutzer es editieren können :gruebel:

hathor 25. Aug 2008 11:02

Re: TMemo maximale Zeilen begrenzen
 
Zitat:

Zitat von Deep-Sea
Zitat:

Zitat von hathor
Von Editieren war nie die Rede...

Zitat:

Zitat von Alfonso3
dass der Benutzer max. 9 Zeilen eingeben kann

Für mich sieht das schon so aus, als sollte der Benutzer es editieren können :gruebel:

Kannst Du nicht bis 9 zählen?

DeddyH 25. Aug 2008 11:04

Re: TMemo maximale Zeilen begrenzen
 
Ich gebe 9 Zeilen ein und versuche die letzte zu löschen. Was dann?


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:54 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz