![]() |
Memo hängt sich bei vielen Daten auf
Hallo,
Die Ergebnisse meiner DB Auswertung gebe ich über Memo1.Lines.Add usw aus. Leider hängt sich mein kleines Programm immer ziemlich schnell auf sodass ich nicht mehr sehe was er im Memo hinzufügt. Erst wenn er fertig ist sehe ich alle Daten im Memo. Kann ich das irgendwie ändern? Gruss... |
Re: Memo hängt sich bei vielen Daten auf
Lasse hin und wieder die Oberfläche neu zeichnen (
Delphi-Quellcode:
)
Application.ProcessMessages;
|
Re: Memo hängt sich bei vielen Daten auf
meinst du mit einem Art Timer?
Oder wie soll ich das machen? |
Re: Memo hängt sich bei vielen Daten auf
Nein, z.B. alle 100 DS oder so
|
Re: Memo hängt sich bei vielen Daten auf
kannst Du mir bitte einen kleinen Tip geben wie ich die Oberfläche neu zeichne?
Wo und wie gebe ich das Application... an? |
Re: Memo hängt sich bei vielen Daten auf
Delphi-Quellcode:
while not <DS>.Eof do
begin <MachWas> inc(i); if i div 10 = 0 then //Alle 10 DS Application.ProcessMessages; //Befehl sorgt dafür, das die Messages verarbeitet werden. <DS>.Next; end; |
Re: Memo hängt sich bei vielen Daten auf
Super danke; Jetzt funktionierts
|
Re: Memo hängt sich bei vielen Daten auf
Schneller geht es aber, wenn man noch mit BeginUpdate arbeitet.
Ist zwar etwas aufwändiger, aber es lohnt sich.
Delphi-Quellcode:
Wobei ich es seitabhängiger lieber hab, da man ja nie weiß, wie schnell der PC ist und wie lange die ganze Verarbeitung dauert.
Memo.Lines.BeginUpdate;
try while not <DS>.Eof do begin ... Memo.Lines.Add(...); ... inc(i); if i and 15 = 0 then begin Memo.Lines.EndUpdate; try Application.ProcessMessages; finally Memo.Lines.BeginUpdate; end; end; <DS>.Next; end; finally Memo.Lines.EndUpdate; end;
Delphi-Quellcode:
C := GetTickCount;
Memo.Lines.BeginUpdate; try while not <DS>.Eof do begin ... Memo.Lines.Add(...); ... if GetTickCount - C > 150 then // alle 150 ms begin Memo.Lines.EndUpdate; try Application.ProcessMessages; finally Memo.Lines.BeginUpdate; end; C := GetTickCount; end; <DS>.Next; end; finally Memo.Lines.EndUpdate; end; |
Re: Memo hängt sich bei vielen Daten auf
Hallo Hansi, bei großen Datenmengen kannst du dies als Turbo verwenden.
Delphi-Quellcode:
Edit: zu spät, oder zuviel Bier?? :drunken: Memo1.Lines.BeginUpdate; //-- dazwischen mach was.. Memo1.Lines.EndUpdate; lg. Astat |
Re: Memo hängt sich bei vielen Daten auf
Also ich benutze die Word Rechtschreibungsprüfung!
Das liegt aber eher am Schnaps! :) Gruss an die Runde! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:57 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 by Thomas Breitkreuz