Memo-Feld und cleartext löscht nicht alles



  • Ich habe ein Memofeld als Eingabemöglichkeit.
    Wenn ich Return drücke soll der Text an einen Socket geschickt werden und das
    Memofeld geleert werden.
    Das klappt soweit auch nur, dass scheinbar das Return
    noch immer im Memofeld stehen bleibt.

    Selbst wenn ich das versuche:

    void __fastcall TfrmMain::txtEingabeKeyDown(TObject *Sender, WORD &Key,
          TShiftState Shift)
    {
      if (Key == VK_RETURN && Telnet->Connected())
      {
        Telnet->WriteLn(txtEingabe->Text);
        txtEingabe->Clear();
        txtEingabe->Lines->Clear(); 
      }
    }
    

    Steht als erstes Zeichen immer noch ein \n.
    Wie kann ich auch das wegbekommen?
    Bzw. scheint mir, muss ich Key irgendwie resetten.
    Wie mache ich das?

    Edit:
    Bitte die Code-Tags benutzen. Danke!



  • Was stört dich daran?
    TMemo ist ein Eingabefeld und hat deshalb immer mindestens eine Zeile, also auch mindestens ein Zeilenende.



  • Mich stoert, dass die erste (leere) zeile mit an den socket gesendet wird.
    das ist aber nicht immer gewuenscht.
    Und der Cursor steht am Ende, also in Zeile 2.
    Aber eigentlich wollte ich nicht diskutieren warum mich was stört oder nicht, denn das weiss ich ganz alleine, dass mich das stört.

    Übrigens klappt Key = 0; oder Key = NULL; nicht, hatte ich grad vergessen.



  • Hat sich alleine erledigt.

    WantReturns = false;

    hats gebracht.....ganz ohne zu diskutieren, warum das so ist.


Anmelden zum Antworten