AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Delphi 2009 Update 3: Andere Verhalten von (Popup-)Menü?
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi 2009 Update 3: Andere Verhalten von (Popup-)Menü?

Ein Thema von Bbommel · begonnen am 3. Jun 2009 · letzter Beitrag vom 21. Mai 2011
 
Bbommel

Registriert seit: 27. Jun 2007
Ort: Köln
666 Beiträge
 
Delphi 12 Athens
 
#1

Delphi 2009 Update 3: Andere Verhalten von (Popup-)Menü?

  Alt 3. Jun 2009, 10:32
Hallo zusammen,

nach dem Einspielen des neuen Update 3 für D2009 habe ich in einem Projekt ein für mich ziemlich großes Problem festgestellt:

Ich zeichne verschiedene Objekte und lasse diese mittels einer TPaintBox ausgeben. Diese Paintbox hat ein "OnMouseMove"-Ereignis, um herauszufinden, ob sich die Maus gerade über einem bestimmten Objekt befindet, mit dem der Benutzer dann was anstellen kann.

Zum Beispiel kann er folgendes machen: Er kann die rechte Maustaste drücken, so dass sich ein Popup-Menü öffnet, in dem er für dieses Objekt unterschiedliche Aktionen auswählen kann. Diese Aktionen müssen dann natürlich wissen, mit welchem Objekt sie etwas machen sollen. Bisher war das auch kein Problem, denn vor dem Erscheinen des Popup-Menü wurde ja durch das OnMouseMove festgestellt, über welchem Objekt man sich befindet und wenn das Popup-Menü einmal erschienen war, wurde auch kein OnMouseMove-Event mehr ausgelöst bis das OnClick-Event für den Menü-Punkt ausgeführt war. Insofern konnte sich also die Aktion hinter dem OnClick darauf verlassen, dass das gerade aktuelle Objekt dasjenige ist, mit dem sie etwas anstellen muss.

Das alles funktioniert seit D2009 Update 3 nicht mehr: Jetzt wird NACH einem Klicken auf den Menüpunkt im Popup-Menü und VOR dem Ausführen des OnClick-Events des Menüpunktes noch einmal ein OnMouseMove der drunterliegenden PaintBox ausgeführt. Das ist natürlich fatal, denn um den Menüpunkt auszuwählen muss der Benutzer natürlich die Maus bewegen, die sich somit nicht mehr über dem eigentlichen Objekt befindet, wodurch die auszuführende Aktion nun das falsche Objekt bearbeitet. Aua.

Ich konnte das Verhalten auf zwei Rechnern mit dem Update 3 reproduzieren und auf einem dritten Rechner, auf dem das Update noch nicht installiert war, trat das Problem nicht auf. Das Update ist also ziemlich sicher die Ursache.

Nun hab ich durchaus Ideen, wie ich um diesen Effekt drumrum programmieren kann, dass ist also nicht meine Frage - da werden mir wohl ein paar Stündchen nervige Fleißarbeit bevorstehen.

Die Frage ist eher: Hat irgendwer eine Ahnung, wie es zu dieser Änderung gekommen ist? In den Änderungslisten vom Update 3 habe ich zu dem Thema nichts gefunden (hatte nach TMenu und TPopupMenu gesucht, auch mal ohne "T"). Oder hat jemand genug Durchblick, um im Quellcode der Unit "menus" rauszufinden, ob etwas geändert wurde? Oder kommt der Effekt durch eine Änderung an einer ganz anderen Stelle und ich suche völlig falsch?

Bin hier für Hinweise dankbar. Vielleicht gibt es ja eine einfachere Möglichkeit, diesen Effekt wieder abzustellen als alles zu überarbeiten. Außerdem will ich wenigstens verstehen, warum mir so ein Update gerade mein Programm zerschossen hat.

Bin für Hinweise sehr dankbar.

Bis denn
Bommel
  Mit Zitat antworten Zitat
 


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 22:36 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