AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi TrackBar - OnChange bei MouseMove unterdrücken
Thema durchsuchen
Ansicht
Themen-Optionen

TrackBar - OnChange bei MouseMove unterdrücken

Ein Thema von ralfiii · begonnen am 5. Aug 2008 · letzter Beitrag vom 6. Aug 2008
Antwort Antwort
Benutzerbild von ralfiii
ralfiii

Registriert seit: 30. Mai 2007
489 Beiträge
 
Delphi 2010 Professional
 
#1

TrackBar - OnChange bei MouseMove unterdrücken

  Alt 5. Aug 2008, 17:36
Hallo!

Ich würde gern bei einem Trackbar nur "endgültige" Änderungen als Event haben.
D.h. bei Bewegung des Sliders mit der Tastatur bleibt alles beim alten, wenn man aber den Slider mit der Maus verschiebt, sollte der Event nur gefeuert werden, wenn die Maus losgelassen wird.

(Es ist natürlich völlig ausreichend, wenn ich im OnChange-Event irgendwie überprüfen kann, ob da grad eine Verschiebe-Action im Gange ist. Ich brauch das nur an zwei Stellen, muss also keine extra Komponente sein. Ist mir sogar lieber wenn's keine eigene sondern der Standard-TTrackBar ist)

Beim RxSlider wurde das durch einen Event "OnChanged" Event (zusätzlich zu "OnChange") abgedeckt, ich hätte diese Funktionalität aber gern beim Standard-Slider.

Nachdem das Delphi-Ding ja eine Kapselung von der MFC ist, geht das vielleicht einfach durch senden einer Message an das Handle. Any Hints?

Danke,
Ralf
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: TrackBar - OnChange bei MouseMove unterdrücken

  Alt 5. Aug 2008, 19:54
mhh du kannst auf die message reagieren:

TB_THUMBPOSITION

siehe hier

hoffe das hilft dir weiter!!
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
Benutzerbild von ralfiii
ralfiii

Registriert seit: 30. Mai 2007
489 Beiträge
 
Delphi 2010 Professional
 
#3

Re: TrackBar - OnChange bei MouseMove unterdrücken

  Alt 6. Aug 2008, 09:59
Zitat von lbccaleb:
mhh du kannst auf die message reagieren:
TB_THUMBPOSITION
Vielen Dank, so geht's.

Hier die Lösung:

Delphi-Quellcode:
type TSxTrackBar = class(TTrackBar)
  private
    fOnChanged : TNotifyEvent;
    procedure CNHScroll(var Message: TWMHScroll); message CN_HSCROLL;
  published
    property OnChanged: TNotifyEvent read FOnChanged write FOnChanged;
end;

procedure TSxTrackBar.CNHScroll(var Message: TWMHScroll);
begin
     inherited;
     if assigned(fOnChanged) and
        (Message.ScrollCode in [TB_THUMBPOSITION, TB_LINEUP, TB_LINEDOWN, TB_PAGEUP, TB_PAGEDOWN] )
     then
         fOnChanged(self);
end;

P.S: Was bedeutet mhh?
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: TrackBar - OnChange bei MouseMove unterdrücken

  Alt 6. Aug 2008, 18:43
das war noch morgens nach dem aufstehen, da wusste ich das nicht mehr so genau
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
Benutzerbild von ralfiii
ralfiii

Registriert seit: 30. Mai 2007
489 Beiträge
 
Delphi 2010 Professional
 
#5

Re: TrackBar - OnChange bei MouseMove unterdrücken

  Alt 6. Aug 2008, 20:55
Zitat von lbccaleb:
das war noch morgens nach dem aufstehen, da wusste ich das nicht mehr so genau
Ja, aber wofür steht die Abkürzung?

Muss Heftig Herumraten
Mit Halbem Hirn (weil morgens)

Oder ist das gar keine Abkürzung und ich denk schon wieder mal zuviel nach?
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

Re: TrackBar - OnChange bei MouseMove unterdrücken

  Alt 6. Aug 2008, 20:58
Das ist wahrscheinlich einfach nur ein "mhh" im Sinne von "hmm". Quasi das Geräusch, das erzeugt wird, wenn man nachdenklich ein "m" ausspricht
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  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 11:47 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