TMemo: Text einfügen aber NICHT zur letzten Zeile springen..

Rund um die LCL und andere Komponenten

TMemo: Text einfügen aber NICHT zur letzten Zeile springen..

Beitragvon hubblec4 » 20. Sep 2018, 18:47 TMemo: Text einfügen aber NICHT zur letzten Zeile springen..

TMemo: Text einfügen aber NICHT zur letzten Zeile springen bzw. scrollen

Hallo Lazarus Gemeinde

Google findet natürlich einiges zu TMemo, Text einfügen, letzte Zeile, aber das ist nicht was ich in diesem Fall möchte.

Ich habe im Program ein TMemo in dem der output eines anderen Programms geloggt wird.

Hierbei erhalte ich einen String der Zeileumbrüche beinhaltet.
Ich habe dann einfach Memo.Text:=outputString; als Text gemacht und siehe da alle Zeilen wurden so im Memo angezeigt.

Wenn ich dann weiteren Text anhängen wollte habe ich das mit
With TMemo do Text:=Text+neuer_output; gemacht. Dabei wurde dann immer die erste Zeile selektiert.

Ich habe nun heraus gefunden das Memo.Lines.Add()/Append() gleich die letzte Zeile selektiert.

Wenn ein User in dem Memo rum-scrollen will soll weiterhin neuer Text angehängt werden aber NICHT mehr zur letzten Zeile gesprungen werden.

Habt ihr dazu eine Idee?

LG
hubble
hubblec4
 
Beiträge: 203
Registriert: 25. Jan 2014, 17:50

Beitragvon Niesi » 23. Sep 2018, 10:45 Re: TMemo: Text einfügen aber NICHT zur letzten Zeile spring

Wenn Text z. B. mit
Code: Alles auswählen
MyMemo.Lines.Add('Irgendein Text ...');

an das Ende der Stringliste angefügt wird, dann steht da natürlich auch der Cursor.
Du kannst ihn aber danach positionieren, mit
Code: Alles auswählen
 
TextPos.x := 5;
TextPos.y := 6;
MyMemo.CaretPos := TexPos;
MyMemo.SetFocus;
 

TextPos ist ein tPoint, den setzt Du vorher z. B. auf TextPos.x := 5; TextPos.y := 6;
Dann sollte der Cursor da hinspringen.

Weiterhin kannst Du den Cursor auch mit SelStart, SelLength und SetFocus positionieren. Eigentlich wird der Text damit selektiert, aber bei SelLength := 0; gibt's keinen selektierten Text.

Und es hilft auch immer, in die Suchmaschine Deiner Wahl z. B. "FreePascal tMemo Cursor" einzugeben ...

Beste Grüße
Niesi
Zuletzt geändert von Niesi am 24. Sep 2018, 11:49, insgesamt 1-mal geändert.
Niesi
 
Beiträge: 62
Registriert: 26. Jun 2016, 18:44

Beitragvon Mathias » 23. Sep 2018, 16:26 Re: TMemo: Text einfügen aber NICHT zur letzten Zeile spring

Und es hilft auch immer, in die Suchmaschine Deiner Wahl z. B. "FreePascal tMemo Cursor" einzugeben ...
Anstelle von FreePascal verwende ich immer Lazarus., vor allem wen es sich um LCL-Komponenten handelt.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4327
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon hubblec4 » 27. Sep 2018, 23:21 Re: TMemo: Text einfügen aber NICHT zur letzten Zeile spring

Ich habe da schon bissl rumprobiert und mit SelLength.
Aber dabei geht es immer um den Curser der im Memo an einer bestimmten Stelle steht.
Diese Curser Position ändert sich NICHT wenn man mit der Mouse den Scrollbalken bewegt, und wenn nun neuer Text hinzukommt und ich wieder an die Cursor Position springe, ist das Nicht die aktuelle Anzeige die der Benutzer vorher hatte.

Ich habe es jetzt aber auch so gemacht das die Curser Position wiederhergestellt wird. Geht irgendwie nicht anders(im Moment).
hubblec4
 
Beiträge: 203
Registriert: 25. Jan 2014, 17:50

Beitragvon pluto » 29. Sep 2018, 16:54 Re: TMemo: Text einfügen aber NICHT zur letzten Zeile spring

Bei einem memo wird eigentlich "nur" Automatisch gescrollt, wenn der Cursor an der letzten Zeile steht. So kenne ich es unter Linux....
MFG
Michael Springwald
Aktuelles Projekt: PlutoArduino
pluto
 
Beiträge: 6671
Registriert: 19. Nov 2006, 12:06
Wohnort: Oldenburg/Oldenburg
OS, Lazarus, FPC: Linux Mint 18.3 | 
CPU-Target: AMD
Nach oben

Beitragvon hubblec4 » 29. Sep 2018, 23:29 Re: TMemo: Text einfügen aber NICHT zur letzten Zeile spring

OK, das müsste ich mal testen. Da ich unter Win7 programmiere ist es so, das die letzte Zeile automatisch angesteuert wird, egal wo der Curser sich befindet.
hubblec4
 
Beiträge: 203
Registriert: 25. Jan 2014, 17:50

• Themenende •

Zurück zu Komponenten und Packages



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

cron
porpoises-institution
accuracy-worried