TMemo scrollen?



  • Hi Leutz!
    Also ich habe ein TMemo, das automatisch mit Text gefüllt wird.
    Leider kann ich dies nicht mit Add tun (weil dann immer Leerzeilen entstehen), und mache es so:

    Main->Status->Text = Main->Status->Text + lpszBuffer;
            Main->Status->SelStart = Main->Status->Text.Length() - 1;
            Main->Status->Update();
    

    Das funktioniert auch soweit ganz schön, nur eine sache funzt nicht: Das Memo soll nämlich immer nachdem neuer Text hinzugekommen ist, die jeweils letzte Zeile anzeigen.

    Main->Status->SelStart = Main->Status->Text.Length() - 1;
    

    tut bei mir nämlich nichts 😞

    Bitte helft mir :):):)

    code_pilot



  • Guck ma im Objetkinspektor bei Scrollbars, da kannste das einstellen. 😉



  • Original erstellt von code_pilot:
    **Hi Leutz!
    ... Leider kann ich dies nicht mit Add tun (weil dann immer Leerzeilen entstehen)

    **

    *peinlichberührtist* vergiss meine antwort von oben... *schäm* Aber wieso fügt er bei dir denn einen Zeilenumbruch ein, ich arbeite auch mit einem TMemo, aber bei mir macht er das nicht.
    Also, so wie ich das verstanden habe, bekommst du doch mit Text.Length() die länge deines Strings raus, aber nicht die letzte zeile.



  • Kuck mal in der Hilfe unter 'Perform'



  • Hmmm nun ja also wenn ich das mit Add() mache habe ich mal probiert, das letzte Zeichen abzuschneiden, aber das funzt nicht. Weist du, dieses Programm was ich schriebe soll die Ausgaben eines DOS-Programms auslesen und in ein Memo reinschreiben. Funkt ja soweit auch nur die sache mit dem automatischem scrollen ruled nicht 😞
    Nun ja ich dachte mir, wenn ich mit SetSel die Curorposition setze (und die ist ja in Zeichen angegeben) kriege ich das letzte Zeichen durch Text.Length() raus aber wie man ja sieht gehts net 😞

    Grüsse, code_pilot



  • Am Ende des Textes im Memo (jeder Zeile) stehen 2 Steuerzeichen!

    mit :
    Main->Status->SelStart = Main->Status->Text.Length() - 3;
    Main->Status->SelLength = 1;
    markierste das letzte sichtbare Zeichen!!! 😉

    HideSelection sollte in Memo auf false stehen!

    Die Leerzeilen bei Add kommen von lpszBuffer

    Da stehen am Ende bestimmet Steuerzeichen - die mach vorher ab! 😉



  • Versuchs mal mit:

    Memo1->Perform(EM_SETSEL, Memo1->Text.Length(), 1);
    Memo1->Perform(EM_SCROLLCARET, 0, 0);
    Memo1->SetFocus();
    

    Schreib das in das OnChange Ereigniss des Memo1

    [ Dieser Beitrag wurde am 04.03.2003 um 10:43 Uhr von chewy editiert. ]



  • Sorry hab nen scheiss geschrieben nimm:

    Memo1->Perform( EM_SETSEL,1, Memo1->Text.Length()-1);
    Memo1->Perform(EM_SCROLLCARET, 0, 0);
    


  • Hey super, RUNNT :):):):):)

    VIELEN DANK

    code_pilot


Anmelden zum Antworten