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.


Anmelden zum Antworten