Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Zugriffsverletzung beim onMouseWheel-Ereignis (https://www.delphipraxis.net/138905-zugriffsverletzung-beim-onmousewheel-ereignis.html)

myInfo 19. Aug 2009 20:14


Zugriffsverletzung beim onMouseWheel-Ereignis
 
Hallo ihr da draußen,

ich habe ein Problem mit meinen onMouseWheel/onMouseWheelUp/onMouseWheelDown-Ereignissen eines Formulares.

Sofern ich die Behandlungsroutinen für diese Ereignisse anlege (quasi "Doppelklick" auf das Ereignis im Objektinspektor), ich das Projekt kompiliere, starte und dann mit dem Mausrad in die entspr. Richtung scrolle, (sobald ich also das Ereignis auslöse), meldet mir Delphi eine Zugriffsverletzung. Lösche ich die Routine wieder, erscheint logischer Weise auch keine Fehlermeldung mehr. Dieser Fehler tritt übrigens nur in diesem Projekt auf. Beginne ich ein neues Projekt, erhalte ich bei gleicher Vorgehensweise keine Fehlermeldung.

Der Debugger führt das Programm bis zur "begin"-Zeile der betroffenen Routine aus, danach erscheint die Zugriffsverletzung.

Ich weiß, ihr erwartet jetzt ein wenig Quelltext, aber ich weiß wirklich nicht, was ich euch da zeigen soll. Die Definitionen für die Routinen sehen wie gewohnt aus, der Rest des Programmes ist bereis zu groß als dass ich euch das zumuten möchte, und einen anderen Ansatzpunkt habe ich als nicht-Delphi-Profi leider nicht parat.

Meine Frage an Euch: Habt ihr eine Idee, was ich verstellt haben könnte? Gibt es irgend etwas, das ich beachten sollte? Habt ihr einen Vorschlag, wo man die Fehlersuche ansätzen könnte? Ich für meinen Teil bin etwas ratlos, und von Google und der Welt im Stich gelassen (achtung, wortspiel ;-)

Freue mich über jede Hilfe.

hoika 20. Aug 2009 00:05

Re: Zugriffsverletzung beim onMouseWheel-Ereignis
 
Hallo,

Zitat:

der Rest des Programmes ist bereis zu groß als dass ich euch das zumuten möchte
bei einem neu erstellten Projekt kommt also kein Fehler,
nur bei dem existierenden ?

Lösung: Es liegt an meiner Glaskugel.

Im Ernst.
Wie sollen wir dir helfen mit diesen Ausgangsdaten ?

Kommentier mal alles aus,
dann schrittweise wieder rein, bis der Fehler auftritt.


Heiko

myInfo 20. Aug 2009 11:56

Re: Zugriffsverletzung beim onMouseWheel-Ereignis
 
Fehler gefunden.

Hat Stunden gedauert: in einer anderen Unit wurde der Typ "TPoint" neu definiert. Die
Routine "FormMouseWheel" bekommt als einen Parameter allerdings "MousePoint: TPoint" übergeben.
Scheinbar hat die neue TPoint-Deklaration die alte in diesem Fall überschrieben, das führte
zu der Zugriffsverletzung.

Den Fehler hätte ich wohl früher gefunde, wenn die Routinen für die Ereignisse MouseMove,
MouseUp und MouseDown diesen Fehler auch produzieren würden. Hier wird die Mausposition
allerdings nicht als TPoint, sondern als X- und Y-Koordinate vom Typ Integer übergeben.

Trotzdem vielen Dank für den Tipp,

myInfo

Satty67 20. Aug 2009 12:00

Re: Zugriffsverletzung beim onMouseWheel-Ereignis
 
Welche Units waren es denn (wenn es Standard Units sind)

Meine mich zu erinnern, das ich ein ähnliches Problem mit SysUtils und Windows hatte. Hab' es auch irgendwo notiert, finde es aber nicht mehr :(

myInfo 20. Aug 2009 19:02

Re: Zugriffsverletzung beim onMouseWheel-Ereignis
 
Nein, es war in diesem Fall eine selbst erstellte Unit.
Quasi eigene Blödheit ;-)
Ich hätte gedacht, dass ich in allen wichtigen Fällen "Types.TPoint" schreiben könnte.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:33 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