![]() |
Verständnisfrage zu Update,Invalidate,Repaint
Hallo Zusammen,
wie aus der Überschrift hervorgeht, komme ich mit den drei Methoden und ihrem Einsatz nicht ganz klar (die OH ist widersprüchlich) Update soll ein Neuzeichnen der Form veranlassen. Das funktioniert aber wohl nur innerhalb des Programmablaufes, wenn man Application.Processmessages nutzt. Repaint soll Invalidate und anschließend Update aufrufen um sofortiges Neuzeichnen des ganzen Forms zu veranlassen. Invalidate veranlaßt ein Update "bei Gelegenheit". Wenn man auf einem Form nur z.B. die Namen der gerade verarbeiteten Datei ausgeben will, und möglichst wenig CPU-Zeit verbraten will, wie macht man's am geschicktesten? (die Processmessages-Brechstange möchte ich mal aussen vorlassen wg. ungewolltem Multitasking) (Ja, die Beschränkung auf Label ist mir bekannt) Gruß K-H |
Re: Verständnisfrage zu Update,Invalidate,Repaint
Also kann ja sein das ich jetzt falsch liege...
Jedoch veranlassen zwar Repaint, Invalidate und Update das Neuzeichnen bzw. teils teils, jedoch sagen sie nicht, dass die aktuellen Ereignisse verarbeitet werden sollen wie Application.ProcessMessages. Also zwar kannst du ihm sagen das er etwas neuzeichnen soll, da er aber beschäftigt ist, macht er es erst nach dem Beenden des Vorgangs. Bei nem Vorgang wo mehrere Dateien verarbeitet werden, kannst du z.b. sagen das er immer ein Event auslöst wenn es zugewiesen wurde indem irgendetwas geschieht (z.B. Ausgabe der aktuell Datei die verarbeitet wird).
Delphi-Quellcode:
Hoffe ich liege soweit richtig ^^
if Assigned( OnBenachrichtigungsevent ) then
begin OnBenachrichtigungsevent; end; // Verarbeitungsprozedur . . . MfG Alaitoc Edit ist mein Freund... |
Re: Verständnisfrage zu Update,Invalidate,Repaint
Zitat:
Gruß K-H |
Re: Verständnisfrage zu Update,Invalidate,Repaint
Zitat:
Delphi-Quellcode:
"Invalidate/Update" stimmt also schonmal
procedure TWinControl.Repaint;
begin Invalidate; Update; end; und Update ruft quasi die Methoden für's Neuzeichnen direkt auf, weßhalb daher natürlich die Änderungen auch sofort sichtbar sind. [add] The ![]() The ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:13 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