![]() |
BeginUpdate / EndUpdate "schachteln"?
Hallo,
da mir F1 zu BeginUpdate keine Treffer liefert frage ich einfach mal: Ich habe mehrere Aktualisierungsproceduren
Delphi-Quellcode:
und eine welche alle Aktualisierungen zusammenfasst
procedure Aktualisierung1;
begin try BeginUpdate; .. finally EndUpdate; end; end; procedure Aktualisierung2; begin try BeginUpdate; .. finally EndUpdate; end; end;
Delphi-Quellcode:
procedure AktualisierungAlles;
begin try BeginUpdate; Aktualisierung1; Aktualisierung2; Aktualisierung3; .. finally EndUpdate; end; end; Wird im Fall von AktualisierungAlles das Control erst aktualisiert wenn das letzte EndUpdate erreicht wird oder wird in jeder einzelnen Aktualisierung neu gezeichnet? Also wird BeginUpdate intern "gezählt" und erst beim letzten zugehörigen EndUpdate zurückgesetzt? Ciao Stefan |
AW: BeginUpdate / EndUpdate "schachteln"?
Es wird intern gezählt.
|
AW: BeginUpdate / EndUpdate "schachteln"?
Danke, prima, dann passt das ja!
Ciao Stefan |
AW: BeginUpdate / EndUpdate "schachteln"?
Du kannst dir übrigens den VCL-Code angucken ;) (Strg + Linksklick auf BeginUpdate oder EndUpdate)
Delphi-Quellcode:
procedure TStrings.BeginUpdate;
begin if FUpdateCount = 0 then SetUpdateState(True); Inc(FUpdateCount); end; |
AW: BeginUpdate / EndUpdate "schachteln"?
Zitat:
Delphi-Quellcode:
Denn wenn es im BEGIN knallt, dann darf/sollte END nicht aufgerufen werden.
BeginUpdate;
try .. finally EndUpdate; end; > entweder nur falsch zählen oder, wie bei auch bei Create+Free, gibt es da nichts zum Runterzählen/Freigeben und es knallt womöglich gleich nochmal, was dann die ursprüngliche Fehlermeldung und Fehlerposition zerstört. |
AW: BeginUpdate / EndUpdate "schachteln"?
Ich sehe bei Deinem Code keinen Unterschied!
BeginUpdate ist die erste Zeile des try-Blocks, zwischen begin der Procedure und dem try ist nichts. Also wird als allererster Befehl das BeginUpdate im try-Block aufgerufen, was soll da knallen? Ciao Stefan |
AW: BeginUpdate / EndUpdate "schachteln"?
Zitat:
Sherlock |
AW: BeginUpdate / EndUpdate "schachteln"?
Zitat:
Delphi-Quellcode:
PROCEDURE TMain.Test;
var List:TStrings; begin List.BeginUpdate; end; |
AW: BeginUpdate / EndUpdate "schachteln"?
OK, Ihr habt mich überzeugt, das BeginUpdate kommt vor den try-Block!
Ciao Stefan |
AW: BeginUpdate / EndUpdate "schachteln"?
Zitat:
D.h. auch das Erstellen eines Objekts etc. kommt VOR das try und nicht in das try rein. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:52 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