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/)
-   -   Spin Button (https://www.delphipraxis.net/158899-spin-button.html)

EWeiss 7. Mär 2011 11:20


Spin Button
 
Welche WM Messagen müßte ich einbinden.. bzw ansprechen um ein Spinbutton zu realisieren?

Meine Momentane function

Delphi-Quellcode:
     
  WM_COMMAND:
    begin
      case LoWord(wP) of
        ID_INCVOL:
        begin
          IncVolume := SKAERO_GetKnobValue(SKAERO_GetMainItem(ID_VOLUME));
          SKAERO_SetKnobValue(SKAERO_GetMainItem(ID_VOLUME), IncVolume + 1);
        end;
Das Problem dabei .. reagiert nur wenn ich den Button wieder losgelassen habe.
Ich möchte aber die Value weiterschalten bis der Button losgelassen wurd.

Das ganz ohne einen extra Spinbutton zu erzeugen. (Beispiel von der Spin.pas)

Ich kann zwar die Value über die Maus direkt im Knob setzen
Aber das geht so schnell und ist zu ungenau wenn man es fein abstimmen will.
Das mir da keine andere Wahl bleibt.

gruss

roboter202 7. Mär 2011 14:16

AW: Spin Button
 
Hi,

Ich bin mir nicht sicher ob ich dein Prob. richtig verstanden habe du hast diesen Spin Button mit dem du die Voloume einstellst und bis jetzt increst die Value nur wenn du die Maustaste über dem Button loslässt so und nun möchtest du auf den Button klicken und ihn gedrückt halten und der Wert soll sich direkt verändern


// Sorry geht doch nicht


Gruß
Christian

WM_CLOSE 7. Mär 2011 14:58

AW: Spin Button
 
Das TSpinEdit macht es mit einem Timer. Anders geht es nicht.
Es prüft im Timer, ob der Button gedrückt ist und löst ggf das Click-Ereignis nochmal aus.

EWeiss 7. Mär 2011 15:04

AW: Spin Button
 
Zitat:

Zitat von roboter202 (Beitrag 1086535)
Hi,

Ich bin mir nicht sicher ob ich dein Prob. richtig verstanden habe du hast diesen Spin Button mit dem du die Voloume einstellst und bis jetzt increst die Value nur wenn du die Maustaste über dem Button loslässt so und nun möchtest du auf den Button klicken und ihn gedrückt halten und der Wert soll sich direkt verändern


// Sorry geht doch nicht


Gruß
Christian

Heheheh das ist mir klar das es nicht geht.
Ich suche nach einem weg damit es geht.

Habe ich aber auch oben geschrieben.
Normalerweise sollte ich eine dieser messagen auslösen können
Delphi-Quellcode:
  {$EXTERNALSYM WM_MOUSEFIRST}
  WM_MOUSEFIRST      = $0200;
  {$EXTERNALSYM WM_MOUSEMOVE}
  WM_MOUSEMOVE       = $0200;
  {$EXTERNALSYM WM_MBUTTONDOWN}
  WM_MBUTTONDOWN     = $0207;
  {$EXTERNALSYM WM_MBUTTONUP}
  WM_MBUTTONUP       = $0208;
  {$EXTERNALSYM WM_MOUSELAST}
  WM_MOUSELAST       = $020A;
frage mich warum ich da nicht drankomme
obwohl mein Button auf dem korrekten Parent sitzt.

Notfalls muss ich mein Button Control erweitern.

Zitat:

Es prüft im Timer, ob der Button gedrückt ist und löst ggf das Click-Ereignis nochmal aus.
Das hört sich schon mal gut an.

think, think boahh bad english ;)

gruss

roboter202 7. Mär 2011 15:13

AW: Spin Button
 
Schade das es bei Delph kein "ONMOUSEOVER"-Event gibt :wall:

WM_CLOSE 7. Mär 2011 15:20

AW: Spin Button
 
Wann soll es denn ausgelöst werden? Immer?
Dann wäre ja der Rechner nur damit beschäftigt, die Message abzuarbeiten, oder?

EWeiss 7. Mär 2011 15:36

AW: Spin Button
 
Zitat:

Zitat von roboter202 (Beitrag 1086550)
Schade das es bei Delph kein "ONMOUSEOVER"-Event gibt :wall:

:roll:

gruss

lbccaleb 7. Mär 2011 17:08

AW: Spin Button
 
Neulinge^^


hast es schon mal mit Subclassen des Buttons probiert, und in der neuen Fensterschleife auf die Messages zugegriffen?

EWeiss 7. Mär 2011 18:00

AW: Spin Button
 
Zitat:

Zitat von lbccaleb (Beitrag 1086605)
Neulinge^^


hast es schon mal mit Subclassen des Buttons probiert, und in der neuen Fensterschleife auf die Messages zugegriffen?

Wäre eine möglichkeit ..
Danke.

gruss


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