Memo KeyDown bei Enter alles löschen -> Leerzeile bleibt
-
Also ich habe heute noch ein kleines Problem,
und zwar will ich ein Memofeld benutzen um Text zum versenden einzugeben,
bei enter soll der text versand und das Memofeld komplett geleert werden.Im moment gehts mir gerade nur um das bei Enter leeren.
Mache ich derzeit so:void __fastcall TForm1::MemoKeyDown(TObject *Sender, WORD &Key, TShiftState Shift) { if (Key == VK_RETURN) { Memo->Clear(); } }Allerdings scheint die Enter Taste Erst danach "eingefügt", denn eine Leerzeile bleibt in dem Memo.
Meine Frage wie löse ich dieses Problem ?
-
Hallo
Du must einerseits den OnKeyPress-Event anstelle des OnKeyDown-Events verwenden und zweitens nach dem Abfangen des Enters die Weiterverarbeitung verhindern.
void __fastcall TForm1::MemoKeyPress(TObject *Sender, WORD &Key, TShiftState Shift) { if (Key == VK_RETURN) { Memo->Clear(); Key = 0; } }bis bald
akari
-
Das hatte ich nach der Socket error sache auch schon versucht,
leider hilft es nicht...
die leerzeile bleibt bzw. wird eingefügt
-
Hallo
Das glaube ich nicht. Bei meinem Test meines Codes wurde das Memo vollständig gelöscht ohne Leerzeile, ein direkt nachfolgende Abfrage von Memo1->Text.Length() ergibt wie erwartet 0.
bis bald
akari
-
void __fastcall TForm2::Memo_sendenKeyDown(TObject *Sender, WORD &Key, TShiftState Shift) { if (Key == VK_RETURN) { TextSenden();//Text wird gesendet Memo_senden->Clear(); Key = 0; } }Das ist der exakte Code
so schauts nach einem Enter aus
http://img99.imageshack.us/img99/5292/aufzeichnenow7.jpg
-
Hallo
akari schrieb:
Du must einerseits den OnKeyPress-Event anstelle des OnKeyDown-Events verwenden
bis bald
akari
-
sorry irgendwie untergegangen
