![]() |
Memo Auto Scrolling anhalten
Hallo,
ich benutze ein Memo Feld um den Datenaustausch mit der seriellen Schnittstelle anzuzeigen. Wie in dem Beispiel kommt jede sec ein neuer Datensatz. Jetzt will ich mir z.B. den ersten DS ansehen (hochscrollen) ohne den Datenaustausch anzuhalten, kann man das Scrolling für diese Zeit deaktivieren? Problem: Bei einem neuen DS springt die Anzeige im Memo immer auf den letzten / neuesten.
Delphi-Quellcode:
Grüsse
procedure TForm1.FormCreate(Sender: TObject);
begin Memo1.ScrollBars := ssVertical; end; procedure TForm1.Timer1Timer(Sender: TObject); const cLinie = '-----------------------------------------------'; begin Memo1.Lines.Append(FormatDateTime('hh:nn:ss:zzz', now)); Memo1.Lines.Append(cLinie); end; user0815 |
Re: Memo Auto Scrolling anhalten
Statt .Append .Add?
|
Re: Memo Auto Scrolling anhalten
Zitat:
Ich kann das ganze auch umgehen a la:
Delphi-Quellcode:
die Frage ist ja aber ob man das Scrolling einfach durch das hochscrollen + gedrückt halten des Scroll Balkens für ne Zeit deaktivieren kann?
private
{ Private-Deklarationen } ausgabe : boolean; sl : TStringList; ... procedure TForm1.FormCreate(Sender: TObject); begin ausgabe := true; sl := TStringList.Create; Memo1.ScrollBars := ssVertical; end; procedure TForm1.Timer1Timer(Sender: TObject); const cLinie = '-----------------------------------------------'; begin if ausgabe then begin Memo1.Lines.Append(FormatDateTime('hh:nn:ss:zzz', now)); Memo1.Lines.Append(cLinie); end else begin sl.Append(FormatDateTime('hh:nn:ss:zzz', now)); sl.Append(cLinie); end; end; procedure TForm1.Button1Click(Sender: TObject); begin ausgabe := not ausgabe; if ausgabe then begin Memo1.Lines.AddStrings(sl); sl.Clear; end else sl.Add('### angehalten ###') end; |
Re: Memo Auto Scrolling anhalten
Habe es jetzt, Dinge können so einfach sein.
BeginUpdate & EndUpdate regelt das.
Delphi-Quellcode:
private
{ Private-Deklarationen } stopscrolling : boolean; ... procedure TForm1.FormCreate(Sender: TObject); begin stopscrolling := false; Memo1.ScrollBars := ssVertical; end; procedure TForm1.Timer1Timer(Sender: TObject); const cLinie = '-----------------------------------------------'; begin if stopscrolling then Memo1.Lines.BeginUpdate; Memo1.Lines.Append(FormatDateTime('hh:nn:ss:zzz', now)); Memo1.Lines.Append(cLinie); if stopscrolling then Memo1.Lines.EndUpdate; end; procedure TForm1.Button1Click(Sender: TObject); begin stopscrolling := not stopscrolling; if stopscrolling then Button1.Caption := 'starten' else Button1.Caption := 'anhalten'; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:39 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz