AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Was ist hier los? (TListBox, LBN_SELCHANGE, onMouseMove)
Thema durchsuchen
Ansicht
Themen-Optionen

Was ist hier los? (TListBox, LBN_SELCHANGE, onMouseMove)

Ein Thema von MicMic · begonnen am 12. Nov 2019 · letzter Beitrag vom 12. Nov 2019
Antwort Antwort
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.646 Beiträge
 
Delphi 12 Athens
 
#1

AW: Was ist hier los? (TListBox, LBN_SELCHANGE, onMouseMove)

  Alt 12. Nov 2019, 09:30
Befindet sich der Mauszeiger auf der Form direkt (nicht auf dem Panel), wird ständig OnMouseMove gesendet, sobald das Panel in der Breite verändert wird.
Die Events kommen sogar dann, wenn du die Größe des Panels gar nicht veränderst. Das Vorhandensein eines aktiven Timers genügt.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
525 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Was ist hier los? (TListBox, LBN_SELCHANGE, onMouseMove)

  Alt 12. Nov 2019, 09:57
Das wird ja immer besser Mal gut ich musste damit bisher nicht arbeiten^^

@MicMic: Was ist wenn du bei OnMouseMove die Zeigerposition speicherst und mit der vorigen dann immer vergleichst ob sie sich (wirklich) verändert hat und auch erst dann die Kommandos ausführst?
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.
  Mit Zitat antworten Zitat
MicMic

Registriert seit: 26. Mai 2018
296 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#3

AW: Was ist hier los? (TListBox, LBN_SELCHANGE, onMouseMove)

  Alt 12. Nov 2019, 12:39
Die Events kommen sogar dann, wenn du die Größe des Panels gar nicht veränderst. Das Vorhandensein eines aktiven Timers genügt.
Nö, nur wenn ein Panel (oder wohl alle anderen mit Fenster-Handle) in der Breite verändert werden. Aber sollte echt nicht sein.

Zitat von Moombas:
Was ist wenn du bei OnMouseMove die Zeigerposition speicherst und mit der vorigen dann immer vergleichst ob sie sich (wirklich) verändert hat und auch erst dann die Kommandos ausführst?
Ja, da habe ich schon daran gedacht. Alternativ könnte ich bei mir mein TPanel als TLabel machen. Dann wird auch kein OnMouseMove gefeuert. So oder so... es ist blöd, wenn so ein Event (bei diesem Beispiel > Panel.width...) gefeuert wird. Na hoffentlich kommen nicht noch andere spezielle Überraschungen auf mich zu *lach
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.646 Beiträge
 
Delphi 12 Athens
 
#4

AW: Was ist hier los? (TListBox, LBN_SELCHANGE, onMouseMove)

  Alt 12. Nov 2019, 14:30
Die Events kommen sogar dann, wenn du die Größe des Panels gar nicht veränderst. Das Vorhandensein eines aktiven Timers genügt.
Nö, nur wenn ein Panel (oder wohl alle anderen mit Fenster-Handle) in der Breite verändert werden.
Doch - sonst hätte ich das wohl nicht geschrieben. Könnte natürlich auch an der Delphi- oder Windows-Version liegen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
948 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: Was ist hier los? (TListBox, LBN_SELCHANGE, onMouseMove)

  Alt 12. Nov 2019, 15:22
Zitat:
Könnte natürlich auch an der Delphi- oder Windows-Version liegen.
Glaube ich kaum, unter Delphi 2009 und Windows XP ist das gleiche Verhalten zu beobachten.
  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 06:03 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