Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Tuning Knopf D7 (https://www.delphipraxis.net/182481-tuning-knopf-d7.html)

beanbear6 28. Okt 2014 10:15

Tuning Knopf D7
 
Hallo zusammen,
ich suche eine Komponente oder Möglichkeit, mit einem
runden Knopf bei Rechtsdrehung eine Variable zu inkrementieren
und bei Linksdrehung zu dekrementieren. Das Ganze soll
endlos, also ohne Start oder Endposition gehen.
Ich möchte bei Klick also eine Variable z.B. 50 übergeben und
von da aus immer eins dazu oder wegrechnen können.

Weiß jemand so ne Kompo oder ne lösung?
Bin für jeden Tip dankbar...
Gruß Beanbear

Der schöne Günther 28. Okt 2014 10:17

AW: Tuning Knopf D7
 
http://www.delphipraxis.net/181096-s...omponente.html

beanbear6 28. Okt 2014 10:37

AW: Tuning Knopf D7
 
Hi du schöner :-)
alle getesteten knöpfe haben ein Min und ein Max,
für mich nicht brauchbar, weil:
wenn ich bei max weiterdrehe, krieg ich wieder den
Wert 0, es beginnt also wieder von Anfang an.
Ich muss endlos bei rechtsdrehung +1 und bei links
einfach -1 erhalten...
Hast da evtl. ne Lösung?
Gruß der schöne Beanbear :-)

Dalai 28. Okt 2014 10:56

AW: Tuning Knopf D7
 
Wie stellst du dir das vor? Selbst ein Int64 hat ein Min und ein Max. Oder anders ausgedrückt: Alles was mit Zahlen zu tun hat, hat Grenzen, sowohl Unter- als auch Obergrenze. Klar, man kann Überläufe mitbekommen und entsprechend behandeln, aber auch diese Behandlung hat Grenzen. Es gibt kein Unendlich, das im PC darstellbar wäre.

MfG Dalai

beanbear6 28. Okt 2014 11:31

AW: Tuning Knopf D7
 
Hi Dalai,
ja das ist mir schon klar... Erklärung:
Ich hab so ein DMX-board gemacht und möchte Werte von 0 bis 255
mit Hilfe eines runden Knopfes realisieren, weil das besser als mit
TrackBar oder so ist.
Damit das Ganze besser einzustellen ist, möchte ich, dass bei einmaligen
rumdrehen der Wert jeweils um z.B. von 0 bis 20 in einser Schritten erhöht wird.
Das heißt aber, dass ich bei weiterem rumdrehen ja wieder von 0 beginne.
Mit der richtigen Lösung muss ich dann z.B. ca. 12 mal rumdrehen, um die Werte
von 0 bis 255 zu erhalten..
Is bissl schwer zu erklären.. Kann mans verstehen?
Gruß Reiner

Uwe Raabe 28. Okt 2014 11:55

AW: Tuning Knopf D7
 
Die Abacus Komponentensammlung enthält einen TAbGearDial:

Zitat:

Description
Dial control with multiple turns.

hathor 28. Okt 2014 14:57

AW: Tuning Knopf D7
 
Liste der Anhänge anzeigen (Anzahl: 2)
Ob das nun rund oder linear ist - man kann sowas auch selbst bauen:

Bedienung: hin- und herbewegen des Cursors mit der Maus oder dem Finger im grünen Bereich erhöht den Wert, im roten Bereich wird er verkleinert.

Delphi-Quellcode:
unit Unit2;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls, Vcl.Buttons;

type
  TForm2 = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    Label1: TLabel;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    Button1: TButton;
    BitBtn3: TBitBtn;
    BitBtn4: TBitBtn;
    BitBtn5: TBitBtn;
    BitBtn6: TBitBtn;
    BitBtn7: TBitBtn;
    BitBtn8: TBitBtn;
    BitBtn9: TBitBtn;
    BitBtn10: TBitBtn;
    Panel3: TPanel;
    BitBtn11: TBitBtn;
    BitBtn12: TBitBtn;
    BitBtn13: TBitBtn;
    BitBtn14: TBitBtn;
    BitBtn15: TBitBtn;
    BitBtn16: TBitBtn;
    BitBtn17: TBitBtn;
    BitBtn18: TBitBtn;
    BitBtn19: TBitBtn;
    BitBtn20: TBitBtn;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure BitBtn2MouseEnter(Sender: TObject);
    procedure BitBtn1MouseEnter(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.BitBtn1MouseEnter(Sender: TObject);
begin
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
Label1.Tag:= Label1.Tag -1; if Label1.Tag<0 then Label1.Tag:=0;
Label1.Caption:= INTTOSTR(Label1.tag);
Application.ProcessMessages;
winapi.windows.Beep(1500,20);
end;

procedure TForm2.BitBtn2MouseEnter(Sender: TObject);
begin
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
Label1.Tag:= Label1.Tag +1; if Label1.Tag>255 then Label1.Tag:=255;
Label1.Caption:= INTTOSTR(Label1.tag);
Application.ProcessMessages;
winapi.windows.Beep(2000,20);
end;

procedure TForm2.Button1Click(Sender: TObject);
begin
Close;
end;

procedure TForm2.FormCreate(Sender: TObject);
begin
Label1.Tag:=127;
Label1.Caption:= INTTOSTR(Label1.tag);
end;


end.

beanbear6 17. Dez 2014 16:13

AW: Tuning Knopf D7
 
Hallo zusammen,
vieeelen Dank für Eure Hilfe. Danke an den Tip mit den Abakus!!
Auch Dank an das Beispiel. Ich werds mir gleich mal reinziehen.
Gruß an alle
Reiner


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