Memo Zeilen Limit



  • Hallo zusammen,

    ich hab ein recht "simples" Problem, aber bekomme es leider selber nicht richtig hin. 🙄
    Ich habe eine normales Memo Feld das ich auf einen bestimmte Zeilenanzahl begrenzen möchte. D.h. der Benutzer soll z.b max. 6 Zeilen eingeben können.
    Leider hat die Komponente keine Eigenschaft wo man die einstellen könnte. 😞

    Ich hoffe irgendjemand hat eine Idee. 💡

    Bye Netzcowboy



  • Hi,

    Versuch doch auf das on_change ereigniss reagieren und immer die Zeilen zu zählen,
    wenn beim on_change sich das ändert dann lösche das einfach was übersteht

    MfG



  • Danke erstmal für deine Antwort eViLiSSiMo, 👍
    sowas in der Art hab ich mir auch schon gedacht.
    Und folgendermassen Umgesetz, in dem OnKeyUp Event des Memos:

    if((Anschrift_Memo->Lines->Count==6)&&(Key==13)) // Abfragen ob schon 6 Zeilen vorhanden und RETURN gedrückt wird
      {
      ShowMessage("Es sind max. 6 Zeilen in der Anschrift möglich.");
      Anschrift_Memo->Lines->Delete(Anschrift_Memo->Lines->Count); // 7. Zeile wieder löschen
      }
    

    Leider gibt es da auch ein Problem.
    Ich versuch es mal an einen Beispiel zu erklären...
    Mein Memo, soll max. 6 Zeilen haben.

    Memo Zeilen:

    Test1
    Test2
    Test3
    Test4
    Test5
    Test6
    *

    ➡ Memo ist voll, soll keine weiteren Eingaben in einer neuen Zeile zulassen.
    Wenn der Cursor hinter der Test6 Zeile steht und RETURN gedrückt wird, kann ich mit OnKeyUP etc. super erkennen und dann die Zeile wieder löschen.
    Aber wenn der Cursor zum Beispiel hinter dem Test3 steht und dann RETURN gedrückt wird, erkennt meine Methode die Zeile zuviel und löscht den Eintrag Test6 😞

    Ich müsste als vorher erkennen, dass das Memo bereits voll ist, und das RETURN-"Signal" blockieren.

    Hab nur gar keine Ahnung wie ich das hinbekommen soll. 😕

    Bye Netzcowboy


  • Mod

    Hallo

    Memo1->Lines->Count liefert dir die Anzahl der Zeilen in deinem Memo
    (pruef einfach ab ob es 6 Zeilen sind bei einem Tastendruck und ....)

    MfG
    Klaus



  • Key kannst du auch was zuweisen (KeyPress). Wenn du 0 zuweist (ohne '') wird nix ins Memo geschrieben...



  • if((Anschrift_Memo->Lines->Count==6)&&(Key==13))
        Key = 0;
    


  • Sag ich doch.



  • Vielen Dank für die vielen Antworten!

    Es funktioniert jetzt wunderbar 👍

    Bye Netzcowboy


Anmelden zum Antworten