Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Buttons als Taster Touchscreen (Volumregler) (https://www.delphipraxis.net/167273-buttons-als-taster-touchscreen-volumregler.html)

Cyberaxx 20. Mär 2012 21:22

Buttons als Taster Touchscreen (Volumregler)
 
Hallo Gemeinde,

Ich denke der Titel ist wohl nicht wirklich gut gewählt aber ich habe gerade keine Ahnung wie ich dies nennen soll.
Gefunden habe ich in dem Moment leider auch nichts. Sollte es da schon etwas geben, so habe ich anscheinend nicht nach dem passenden gesucht, weiß ja auch nicht wonach genau :(

Es geht um derzeit zwei Buttons diese sollten wie bei einer Fernbedienung reagieren. Wenn ich mit meinen klobigen Fingerchen drauf patsche würde ich gerne die Lautstärke Beispielsweise regeln.
Also nicht "Klick" -> Inc(Volume, 2) -> "Klick" sondern solange ich auf den Button drücke soll die Lautstärke erhöht werden bis ich den Button verlasse so nach dem Motto.

ButtonEnter -> Timer starten
OnTimer -> Inc(Volume)
ButtonLeave -> Timer stoppen

Das halte ich aber für eine unschöne Lösung gerade wenn es nachher nicht nur um die Lautstärke geht.
Hoffe ich konnte das relativ gut rüber bringen.

Wenn jemand eine Ahnung hat wie genau das heißt, wäre das eventuell schon einmal ein Anfang.
Hoffe mir kann hier jemand helfen.

Gruß
Cyber

EWeiss 21. Mär 2012 07:17

AW: Buttons als Taster Touchscreen (Volumregler)
 
Wäre das verhalten nicht mit der Komponente TUpDown zu realisieren?
Ob diese allerdings Touch fähig ist kann ich nicht sagen.

gruss

s.h.a.r.k 21. Mär 2012 09:06

AW: Buttons als Taster Touchscreen (Volumregler)
 
Würde aber behaupten, dass du die "Zauberei" schon erkannt hast, da es sehr wahrscheinlich ein Timer sein wird, der im Hintergrund sitzt und den Wert entsprechend anpasst.

turboPASCAL 21. Mär 2012 09:41

AW: Buttons als Taster Touchscreen (Volumregler)
 
Meine Lösung:
Delphi-Quellcode:
procedure X.RunBtnPressCount;
const
  PAUSE_IN_MS = 150;
var
  StartTime: Cardinal;
begin
  while FCountEvent do
  begin
    StartTime := GetTickCount;
    while GetTickCount - StartTime <= PAUSE_IN_MS do
      Application.ProcessMessages;
    inc(FBtnPressCounter);

    Label.caption := inttostr(strtoint(Label.caption)+1);
  end;
end;

procedure X.ButtonMouseDown...
begin
  FCountEvent := True;
  RunBtnPressCount;
end;

procedure X.ButtonMouseUp...
begin
  FCountEvent := False;
end;
Schon ist kein (T)Timer notwendig, ma könnte sich ja auch eine Classe daraus basdteln

Cyberaxx 21. Mär 2012 12:24

AW: Buttons als Taster Touchscreen (Volumregler)
 
Hey das schaut sehr gut aus. Habs gleich auch mal getestet mit Up / Down Funktion

Nur wie würdest Du daraus eine Klasse erstellen, meinst Du damit das nutzen mehrerer solcher Events?
Einsatz wäre denkbar als EQ.


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