AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Wie funktioniert Application.ProcessMessages?

Ein Thema von DelphiManiac · begonnen am 2. Mär 2007 · letzter Beitrag vom 5. Mär 2007
Antwort Antwort
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#1

Wie funktioniert Application.ProcessMessages?

  Alt 2. Mär 2007, 18:14
Hallo,

ich habe ein kleine Verständnisfrage:

Wenn ich in einem Ablauf (der sehr lange dauert) immer mal wieder
Application.ProcessMessages; aufrufe, dann erreiche ich ja, dass die Anwendung auf Windows-Messages reagieren kann und sich neu zeichnet und auf Events
reagieren kann.
Hier jetzt meine Frage, angenommen ich habe einen Ablauf und rufe ProcessMessages auf, dann wird ja sofort alle Windows Nachrichten abgearbeitet. Wenn ich nun ein OnMouseClick Event irgendeiner Komponente definiert habe und dann ein bestimmten Quellcode bereich abarbeite, dann wird ja erst all das abgearbeitet, bis es die Nachrichtenschleife leer ist oder?
Erst dann geht es doch nach Application.ProcessMessages weiter oder?????

Danke euch
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: Wie funktioniert Application.ProcessMessages?

  Alt 2. Mär 2007, 18:37
Zitat von DelphiManiac:
Wenn ich nun ein OnMouseClick Event irgendeiner Komponente definiert habe und dann ein bestimmten Quellcode bereich abarbeite, dann wird ja erst all das abgearbeitet, bis es die Nachrichtenschleife leer ist oder?
Erst dann geht es doch nach Application.ProcessMessages weiter oder?????
Richtig!
Deshalb sollte man alle Menues, Buttons und Actions sperren bis der Job fertig ist.
Am Besten fährt man, wenn man Aktions benützt; das hilft bei der Organisation.
Man braucht einen Try..Finally Schutzblock, damit nach einer Exception das Programm nicht unbedienbar wird:
Delphi-Quellcode:
procedure TForm1.ActionDoWorkExecute(...);
begin
   ActionDoWork.Enabled := False;
   try
      TueDieLangeUndSchwereArbeit;
   finally
      ActionDoWork.Enabled := True;
   end;
end;
Andreas
  Mit Zitat antworten Zitat
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#3

Re: Wie funktioniert Application.ProcessMessages?

  Alt 3. Mär 2007, 09:31
@shmia:

Hi danke für deine Antwort, du schreibst von Actions,
wie und was sind den genau Actions?
Habe es schon in mehreren Zusammenhängen gelesen...

Gruß
DelphiManiac
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#4

Re: Wie funktioniert Application.ProcessMessages?

  Alt 5. Mär 2007, 10:44
Zitat von DelphiManiac:
wie und was sind den genau Actions?
Actions gibt es erst ab Delphi 5 (oder war's D4 ?).
Actions werden mit der Komponente TActionList (auf Palettenseite "Standard") angelegt.
Actions sind eine Art Zwischenhändler. Man kann z.B. eine Action gleichzeitig mit einem Memüpunkt und einem Button verknüpfen. Jede Änderung an den Properties Caption, Enabled oder Visible wird sich sofort auf die verknüpften Controls aus. Mehr dazu in der OH.
Andreas
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz