AutoScroll
-
Ich hab ein TMemo samt vertikaler ScrollBar, in das fleißig etwas hinein geschrieben wird. Ich möchte erreichen, dass die Scrollbar automatisch immer ganz unten steht, damit die aktuell ausgegebene Zeile sichtbar ist. Gibt es da eine Methode/Eigenschaft oder muss ich das ausprogrammieren. Wie?
-
Nimm statt TMemo besser TRichedit
http://www.c-plusplus.net/forum/viewtopic-var-t-is-39175.html
-
Was ist daran besser?
-
In diesem Fall die Tatsache, das TRichEdit eine Funktion Perform() bereitstellt, die dir dein gewünschtes Verhalten umsetzen kann (siehe Link weiter oben).
-
Und was vergleichbares gibt es für TEdit nicht?
-
Für TEdit gibt es sowas nicht ...
Für TMemo schon:
Memo1->Perform(WM_VSCROLL,SB_BOTTOM,0);
-
ludolphi schrieb:
Für TEdit gibt es sowas nicht ...
Für TMemo schon:
Memo1->Perform(WM_VSCROLL,SB_BOTTOM,0);
Hach ja, ich arbeite zu viel
Danke!
-
*kram wühl such*
hah die suchfuntion iss ja doch nützlich ^^
eine frage zu diesem thema, wie kann ich abfragen ob der user in dem moment des OnChange eventuell grad an der bildlaufleiste zerrt oder eventuell grad versucht text zu markieren
iss nämlich ein wenig nervig wenn alle halben sekunden nen neuer block text hinzukommt, der user aber nicht gescheit im log rumscrollen kann Q_Q
-
Die Standardlösung dürfte sein, den User per CheckBox o.ä. das AutoScrolling zeitweilig deaktivieren zu lassen.
-
So weit ich das sehe, wird (zumindest im TRichEdit) beim Anhängen von Text automatisch ans Ende des Textes gescrollt, wenn das TRichEdit den Fokus hat.
Also müßte man die neu einzutragenden Zeilen nicht direkt ins TRichEdit schreiben, sondern z.B. in einer TStringList zwischenspeichern.
-
zwischenspeichern wollte ich nur GERADE NICHT machen .... aber bleibt mir wohl nix anderes übrig .... meine bisherige umsetzung ist schreibe text in stringlist und kopiere stringlist bei neuen daten in textfeld und scrolle, wenn niemand die ausgabe pausiert
theoretisch könnte man das memo und seine WndProc überschreiben, das alle scroll to bottom messaged ignoriert werden solange SB_bartracker ode wie die message hiess gesendet wird, leider kann ich das nur auf arbeit nud nicht mit dem turbo compiler