Bug in TMemo?
-
Hi.
Ich habe ein seltsames Problem mit dem TMemo in C++Builder5.
Ich möchte TMemo Einzeilig darstellen und automatisch aufklappen, wenn mehr als eine Zeile eingegeben wird.void __fastcall TForm1::Memo1KeyPress(TObject *Sender, char &Key) { if ((Memo1->Lines->Count>1) || (Key==13)) // 13 = Return-Key { Memo1->ScrollBars = ssVertical; Memo1->Height = 80; } else { Memo1->ScrollBars = ssNone; Memo1->Height = 21; } }
Nun gebe ich "abc" ein und drücke ENTER und er klappt auch schön die Memo auf, allerdings steht jetzt meine Eingabe in Zeile 2 und Zeile 1 ist leer. Wieso verschiebt er die Zeile einfach mal so?
-
Hallo ~Memo,
das passiert nicht, wenn du die Eigenschaft "WantReturns" von deinem Memo1
auf "false" stellst.
-
Also Zeilenumbrüche sollen schon gehen, man möchte ja Absätze erstellen können.
Das hilft mir in diesem Fall leider nicht weiter.
-
Wahrscheinlich wird die TextCursor-Position beim Setzen der Scrollbars wieder zurück auf 0 (den Anfang) gesetzt, so daß dann die Return-Taste eine neue leere Zeile erzeugt.
Probier mal aus, dir zuerst Memo->SelStart zu merken, dann die Scrollbar zu setzen und anschließend wieder Memo->SelStart zurückzusetzen.