AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

TApplicationevents.onmessage

Ein Thema von Mattze · begonnen am 6. Mai 2016 · letzter Beitrag vom 9. Mai 2016
Antwort Antwort
Mattze

Registriert seit: 6. Jan 2005
664 Beiträge
 
#1

AW: TApplicationevents.onmessage

  Alt 9. Mai 2016, 11:14
Hallo,

ich bin nun einen Schritt weiter und damit wahrscheinlich am Ende.
Dank Eures Tipps habe ich das mal gaaanz klein gemacht und nur das Allernötigste rausgezogen.

Es ist nicht die Art der Berechnung bei mir. Das klappt ordentlich.

Es ist die VirtualExplorerEasyListview!
Dort stoße ich bei einem Click die Berechnung (für das selektierte Dir) an und da kommt es zu diesem komischen Verhalten in applicationevents.onmessage.

Bsp.: Ein Schalter, dessen Click die Berechnung abbrechen soll (da das bei jedem Mousebutton überall im Formular passieren soll, in AEM. Das funktioniert!) und danach noch etwas macht.
Tut er aber nicht. Erst, wenn ich ihn zum zweiten Mal anclicke wird die Click-Prozedur auch ausgeführt.
Wenn ich mir AEM klemme und nur im Buttonclick den Abbruch aufrufe, funktioniert es auch.
(Ich wollte mir das eben nur einfach machen, in dem ich "global" im Formular die Berechnung abbreche. Nun werde ich wohl wirklich für alles eine Clickprozedur schreiben, in dem nur der Abbruch steht. Na ja, man gönnt sich ja sonst nix...)

Gruß
Mattze
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.464 Beiträge
 
Delphi 12 Athens
 
#2

AW: TApplicationevents.onmessage

  Alt 9. Mai 2016, 12:08
Achtung, wenn du in der Behandlung (oder davor) irgendeiner anderen Message (d)eine Aktion abbrechen willst, aber wo in dieser Message schon das Andere ausgeführt wird, dann wird erst die andere Aktion ausgeführt und danach dann das Erste beendet, denn ...

Beispiele:
Delphi-Quellcode:
while not Abbruch do begin
  // mach was
  Application.ProcessMessages;
end;
oder (hier wird danach noch mehr gemacht)
Delphi-Quellcode:
while not Abbruch do begin
  Application.ProcessMessages;
  // mach was
end;
Im Application.ProcessMessages wird diese Message verarbeitet und erst nach Abarbeitung geht es in den ersten Code wieder rein.

Maximal mit einem Delphi-Referenz durchsuchenAbort im OnMessage könnte man hier nach der neuen Message das Äußere abschießen.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 9. Mai 2016 um 12:12 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 18:07 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