Delphi/Lazarus: Wieso benutzt man BeginUpdate und EndUpdate?
Frage von Gast | Letztes Update am 01.07.2021 | Erstellt am 12.01.2016
Ich habe nun schon öfters Code-Beispiele in Delphi oder Lazarus Programmen gesehen, in denen die Befehle BeginUpdate und EndUpdate verwendet werden. Zum Beispiel beim Befüllen einer ListBox oder ListView mit Items, aber auch bei einem Memo.
Kann mir jemand erklären, wieso das nötig ist und so oft verwendet wird? Es funktioniert ja auch ohne und das Programm weiß doch dass ein neues Item kommt. Wieso muss man es dann explizit mit BeginUpdate ankündigen und mit EndUpdate abschließen?
Ähnliche Themen
Delphi/Lazarus: Mit STRG+A in ListView alles markieren
Tipp | 0 Kommentare
Delphi/Lazarus: Markierte Items aus ListBox mit ENTF-Taste löschen
Tipp | 0 Kommentare
Delphi/Lazarus: Link zu einer Website in einer Anwendung setzen
Tutorial | 0 Kommentare
Delphi/Lazarus: Mit ENTF-Taste markierte Einträge aus ListView löschen
Tipp | 0 Kommentare
Delphi/Lazarus: 3 Wege um eine Zahl auf X Nachkommastellen zu runden
Tutorial | 0 Kommentare
Delphi/Lazarus: Kommandozeilen Parameter Tutorial Teil 1: Senden
Tutorial | 0 Kommentare
Delphi: Globale Behandlung von Fehlermeldungen (Exceptions)
Tutorial | 0 Kommentare
Wichtiger Hinweis
Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.
Jetzt mitmachen
Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.
BeginUpdate und EndUpdate werden nicht dazu verwendet, den Vorgang des Hinzufügung "anzukündigen" oder "abzuschließen". Vielmehr wirken sich die beiden Befehle auf die Verhaltensweise des Controls aus, dessen Einträge man verwendet.
Normalerweise wird die ListBox, die ListView oder das Memo-Feld nach jedem Hinzufügen eines Items upgedatet und neu gezeichnet. Gerade bei einer großen Menge von neuen Einträgen kann das sehr lange dauern (das Neu-Zeichnen dauert viel länger als das Hinzufügen).
Aus diesem Grund gibt es die Befehle BeginUpdate und EndUpdate. BeginUpdate sagt dem Control, dass es aufhören soll, sich neu zu zeichnen. Neu gezeichnet wird erst wieder, wenn EndUpdate aufgerufen wurde. In der Zwischenzeit, zwischen diesen beiden Befehlen, kann man die ListBox, die ListView oder auch das Memo-Feld beliebig und schnell bearbeiten, neue Items hinzufügen oder löschen ohne das zeitraubend neu gezeichnet wird.
Letztes Update am 01.07.2021 | Erstellt am 12.01.2016