Hallo,
ich habe ein Problem mit der MemoBox. In meinem Programm gibt es mehrere (80-100) TStringList'en, die mit Text (Logzeilen) gefüllt sind. Da ich in bestimmte Logs reinschauen möchte, habe ich ein Fenster geschrieben, das mir EINEN gewählten Log ausgibt.
Während ich diesen Log betrachte, passieren viele weitere Events, die geloggt werden. Somit ändert sich der gerade betrachtete Log. Diese Änderungen hätte ich gerne auch in meinem BetrachtungsFenster. Um dies zu realisieren habe ich eine Routine programmiert, die, sobald sich der gewählte Log verändert, das LogViewer-Fenster aktualisiert.
Dies geschieht indem ich die StringList erneut an Memo.Lines übergebe.
Dabei treten folgenden Probleme auf:
1.) Die Memobox scrollt auf Zeile 1 zurück (hinzugefügte Zeilen stehen aber unten)
2.) Die ganze Memobox flackert
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| Procedure UpdateLog; begin if CurrentInstance < 0 then exit;
if not main.chkb_logging.Checked then exit;
main.memo_log.Lines := Instances[Current].Log;
SendMessage(main.memo_log.Handle, EM_LINESCROLL, 0, main.memo_log.Lines.Count - 1); end; |
Das scrollen habe ich in den Griff bekommen, jedoch wurde dadruch das flackern nur noch schlimmer.
Wenn jemand eine Idee oder Tipp für mich hat, wäre ich ihm sehr Dankbar
Schon einmal herzlichen Dank im Vorraus.
Mit freundlichen Grüßen
Tobi