AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Event wird ausgelöst, obwohl es nicht sein sollte
Thema durchsuchen
Ansicht
Themen-Optionen

Event wird ausgelöst, obwohl es nicht sein sollte

Ein Thema von haentschman · begonnen am 17. Aug 2009 · letzter Beitrag vom 18. Aug 2009
Antwort Antwort
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.292 Beiträge
 
Delphi 12 Athens
 
#1

Event wird ausgelöst, obwohl es nicht sein sollte

  Alt 17. Aug 2009, 19:51
Hallo alle miteinander...

Ich kann diesen tollen Effekt nicht nachvollziehen.

Gegebenheiten:
- man nehme 2 Forms. (der Einfachheit halber Form1, Form2)
- auf Form1 ein JvDBGrid
- OnTitleClick des JvDBGrid wird ausgewertet. (Sortierung)
- Form2 wird aus Form1 modal angezeigt
- auf Form2 ein JvDBTreeView
- im DoppelklickEvent des JvDBTreeView wird nur Form2.Close aufgerufen.

Das Problem:
- wenn Form2 so ungünstig positioniert ist, daß der Klickpunkt über dem Titel vom JvDBGrid auf Form1 liegt
wird nach dem Schließen von Form2 OnTitleClick des JvDBGrids ausgelöst.
- es fühlt sich an, als würde ich durch Form2 durchklicken. OnTitleClick wird aber erst ausgelöst, wenn Form2 geschlossen ist

was ich probiert habe:
- beim Durchsteppen mit F9 durch die nach der Rückkehr aus Form2.ShowModal vorhandenen Anweisungen wird OnTitleClick nicht ausgelöst
- ein einziger Breakpoint nur in OnTitleClick wird immer angesprungen
- ShowMessage vor Form2.Close verhindert OnTitleClick ( auch mit dem OK Button über dem Titel )
- Application.ProcessMessages vor Form2.Close verhindert OnTitleClick nicht
- OnTitleClick:= nil vor Form2.ShowModal und Zuweisung nach Rückkehr landet immer in OnTitleClick

...jetzt gehen mir langsam die Ideen aus.

Wo kommt dieser Klick her ?

PS:
- das Kompilat verhält sich auch auf verschiedenen Systemen gleich.
- eine Demo mit einem Label (Form2) und einem Panel (auf Form1) hat diesen Effekt nicht

Viel Spaß beim Raten

Danke für Infos
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Event wird ausgelöst, obwohl es nicht sein sollte

  Alt 17. Aug 2009, 20:06
Naja, der zweite Klick wird von Form2 nicht mehr ausgewertet und aufgehoben, bis wieder ein Control den Focus hat und ihn auswerten kann.

In Form2.OnClose mal ein Application.ProcessMessages um den Klick zu schlucken?

Kann es sein, dass JvDBTreeView bereits beim ersten Klick das DoppelKlick-Ereignis ausführt? Evtl. mal testen, was passiert, wenn JvDBTreeView für OnClick auch einen Ereignisbehandlung hat.
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.292 Beiträge
 
Delphi 12 Athens
 
#3

Re: Event wird ausgelöst, obwohl es nicht sein sollte

  Alt 17. Aug 2009, 20:13
Danke für die schnelle Reaktion.

Application.ProcessMessages im OnClose von Form2 verhindert das auslösen nicht

[edit]
- OnClick dazu OnDblClick wird niemals ausgeführt da immer erst OnClick greift.
- ohne OnClick wird bei einem Klick OnDblClick nicht ausgeführt
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Event wird ausgelöst, obwohl es nicht sein sollte

  Alt 17. Aug 2009, 20:32
Ok, Verhalten im [edit]-Abschnitt ist normal.

Hab' es mit ein paar Komponenten probiert, kann es aber nicht reproduzieren (will jetzt aber auch nicht die JediDB Komponenten nachinstallieren, die sollen erst mal nicht in meine neue IDE).

Evtl. weis jemand anderes Rat.
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.292 Beiträge
 
Delphi 12 Athens
 
#5

Re: Event wird ausgelöst, obwohl es nicht sein sollte

  Alt 17. Aug 2009, 20:34
Kann ich verstehen...

Danke für deine Hilfe
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.292 Beiträge
 
Delphi 12 Athens
 
#6

Re: Event wird ausgelöst, obwohl es nicht sein sollte

  Alt 18. Aug 2009, 20:50
dezent nach oben ...

alle ignorieren mich
  Mit Zitat antworten Zitat
TBx
(Administrator)

Registriert seit: 13. Jul 2005
Ort: Stadthagen
1.875 Beiträge
 
Delphi 12 Athens
 
#7

Re: Event wird ausgelöst, obwohl es nicht sein sollte

  Alt 18. Aug 2009, 21:11
tritt das Phänomen auch auf, wenn Du statt Form2.Close Form2.ModalResult:=mrOk setzt?

Btw: Das Form2 gehört da nicht hin! Die Befehler Close und auch die Eigenschaft Modalresult gehören eh zu dem Form. Und eine Instanz der Klasse solltest Du in der Klasse niemals ansprechen.

Gruß aus dem hohen Norden
Thomas Breitkreuz
Gruß Thomas
- Admin DelphiPRAXIS
- Admin Delphi-Treff
- Embarcadero MVP
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.292 Beiträge
 
Delphi 12 Athens
 
#8

Re: Event wird ausgelöst, obwohl es nicht sein sollte

  Alt 18. Aug 2009, 21:21
Hallo Tbx,

ModalResult:=mrOk bringt keine Veränderung.

Zitat:
Das Form2 gehört da nicht hin!
...klar doch. Aber zum besseren Verständnis im Text schon

Danke
  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 21:37 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