AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Zugriffsverletzung bei Application.HandleMessage
Thema durchsuchen
Ansicht
Themen-Optionen

Zugriffsverletzung bei Application.HandleMessage

Ein Thema von Caps · begonnen am 18. Feb 2013 · letzter Beitrag vom 4. Mär 2013
Antwort Antwort
Seite 2 von 3     12 3      
Caps

Registriert seit: 23. Mär 2006
Ort: Leipzig
299 Beiträge
 
#11

AW: Zugriffsverletzung bei Application.HandleMessage

  Alt 18. Feb 2013, 13:50
Auf der betreffenden Form ist kein Timer.
Mit Durchlauf meinst Du den Schleifendurchlauf? Da ist es beim Debuggen mit ziemlicher Sicherheit der erste Durchlauf nachdem ich auf das Formular geklickt habe.
D.h. ich drücke F9 und habe einen Breakpoint auf der Zeile "if PeekMessage(...". Da kann ich so oft F9 drücken wie ich will, alles bleibt ok. Dann klicke ich auf die eingefrorene Form und ziehe die Maus wieder heraus. Die Ausführungsposition steht auf der betreffenden Zeile. Wenn ich jetzt F8 drücke, kommt der Fehler.
"Der Mode cmCFS8 ist prohibitär und von mir entwickelt."
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#12

AW: Zugriffsverletzung bei Application.HandleMessage

  Alt 18. Feb 2013, 13:52
Du schließt das Fenster nicht zufällig per Free?
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Caps

Registriert seit: 23. Mär 2006
Ort: Leipzig
299 Beiträge
 
#13

AW: Zugriffsverletzung bei Application.HandleMessage

  Alt 18. Feb 2013, 14:07
Das aktuelle Fenster (auf das ich klicke) ist noch offen, es soll eigentlich durch einen Button geschlossen werden, der die Prozedur Close enthält, aber wie gesagt: ein Klick irgendwo auf ein Control der Form produziert den Fehler, da ist von Schließen der Form noch keine Rede.
"Der Mode cmCFS8 ist prohibitär und von mir entwickelt."
  Mit Zitat antworten Zitat
DSCHUCH

Registriert seit: 6. Jun 2007
Ort: Dresden
185 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#14

AW: Zugriffsverletzung bei Application.HandleMessage

  Alt 18. Feb 2013, 14:17
Aber es gibt kein OnClick Ereignis, welches da zufällig oder ausversehen irgendwo hängt? oder OnActivate, OnPaint?

Wie gesagt - Application.ÜrocessMessages ist eine der dümmsten Erfindungen in Delphi, kann man auch überall nachlesen, ganz klar meine Meinung... daher ja auch meine Frage in dem anderen Thread welches Entwurfsmuster denn nun eigentlich ideal für solche Fälle ist...

Edit: Hinweis - egal wo Timer sind, diese werden duch Application.....Messages immer ausgeführt, wenn diese fällig sind. Und der Timer wird über die Nachrichtenwarteschlange gesteuert. (Widerspricht aber Deiner Aussage, das es immer beim Click passiert)

Geändert von DSCHUCH (18. Feb 2013 um 14:25 Uhr)
  Mit Zitat antworten Zitat
Caps

Registriert seit: 23. Mär 2006
Ort: Leipzig
299 Beiträge
 
#15

AW: Zugriffsverletzung bei Application.HandleMessage

  Alt 18. Feb 2013, 14:28
Es gibt ein OnShow und ein OnCreate, die vorher auftreten (sollten).
Da kann ich auch mal schauen, ob die durchlaufen.

Über ProcessMessages weiß ich nicht viel, aber wir benutzen es, um die Forms "modal" anzuzeigen; der Dialoggraph ist ein "LIFO-Baum" (nenn' ich's mal...) - ich hab das noch nicht richtig verstanden, aber es funktioniert sonst ganz gut .

Edit:

Das Panel, auf das ich immer klicke, hat kein Ereignis... (auf Deine Frage nach OnClick)

Edit2: LIFO, nicht FIFO!
"Der Mode cmCFS8 ist prohibitär und von mir entwickelt."
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.336 Beiträge
 
Delphi 11 Alexandria
 
#16

AW: Zugriffsverletzung bei Application.HandleMessage

  Alt 18. Feb 2013, 14:35
ProcessMessages arbeitet ja nur die Nachrichten in der Warteschlange ab.
Insofern müsste ein Debuging möglich sein, wenn es in Deinem Quelltext knallt.

Offenbar tritt das Problem aber unter Windows-Kontrolle auf. Dann wird ein Debuging schwer.

Ich kenne das Problem, wenn ich ein Control aus meinem Framework heraus frei gegeben habe, das aktuell den Focus hatte. Den Focus haben ich einem anderen Control zugewiesen und das AltFocus-Control frei gegeben. Alles war gut, aber Windows meinte nach getaner Arbeit (wenn es wieder die Kontrolle übernommen hatte), das Control nochmal ohne Focus neu zeichnen zu müssen.
Meine Lösung: FocusControl unsichtbar setzen und später freigeben.

Ich tippe, dass Du auch etwas frei gibst, für das später noch eine Nachrichtenschlange abgewickelt wird.
ProcessMessages sollte man sehr sparsam verwenden (am besten gar nicht), da der eigene Programmablauf dadurch zeitlich nicht mehr vorhersehbar ist.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Caps

Registriert seit: 23. Mär 2006
Ort: Leipzig
299 Beiträge
 
#17

AW: Zugriffsverletzung bei Application.HandleMessage

  Alt 18. Feb 2013, 14:35
Zitat:
Hinweis - egal wo Timer sind, diese werden duch Application.....Messages immer ausgeführt, wenn diese fällig sind. Und der Timer wird über die Nachrichtenwarteschlange gesteuert. (Widerspricht aber Deiner Aussage, das es immer beim Click passiert)
Ja, stimmt, aber es passiert wirklich nur beim Klick oder beim Tastendruck, es gibt einen Timer auf einer anderen Form, aber die ist schon geschlossen...
"Der Mode cmCFS8 ist prohibitär und von mir entwickelt."
  Mit Zitat antworten Zitat
Caps

Registriert seit: 23. Mär 2006
Ort: Leipzig
299 Beiträge
 
#18

AW: Zugriffsverletzung bei Application.HandleMessage

  Alt 18. Feb 2013, 14:43
Danke auch stahli für die Antwort. Ich glaube ich hab die Schnauze voll, und werde einfach mit Auskommentieren anfangen...
"Der Mode cmCFS8 ist prohibitär und von mir entwickelt."
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.336 Beiträge
 
Delphi 11 Alexandria
 
#19

AW: Zugriffsverletzung bei Application.HandleMessage

  Alt 18. Feb 2013, 14:52
Vielleicht hilft Dir eine Trial von EurekaLog.
Bin aber nicht sicher, ob es noch eine Version für D5 gibt.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
CCRDude

Registriert seit: 9. Jun 2011
675 Beiträge
 
FreePascal / Lazarus
 
#20

AW: Zugriffsverletzung bei Application.HandleMessage

  Alt 18. Feb 2013, 14:54
Wollte auch gerade madExcept empfehlen... etwas ähnliches in grün.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 01:14 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