Mehrfachslider: Was gibt es?

Rund um die LCL und andere Komponenten
Antworten
Benutzeravatar
theo
Beiträge: 10500
Registriert: Mo 11. Sep 2006, 19:01

Mehrfachslider: Was gibt es?

Beitrag von theo »

Hallo
Ich suche einen Mehrfachslider, ein bisschen so wie der vom Industrial Package:

mehrslider.png
mehrslider.png (3.49 KiB) 4704 mal betrachtet

ABER Ich brauche:
- mind. 3 unabhängige Levels, also nicht Min-Value-Max sondern einfach 3 unabhängige "Pfeile" auf einem Control ohne "Range".
- Die Pfeile sollten auf die gleiche Seite zeigen und individuelle Farben haben.

Gibt so etwas fertig oder muss ich den TMultiSlider vom Industrial Package umbauen?
Bin auch für alternative Optionen empfänglich. Ich muss einfach drei Levels in einer Paintbox platzsparend regeln können.

Danke!

wennerer
Beiträge: 524
Registriert: Di 19. Mai 2015, 20:05
OS, Lazarus, FPC: Linux Mint 20 Cinnamon,Lazarus 2.2.6 (rev lazarus_2_2_6) FPC 3.2.2 x86_64-linux-
CPU-Target: x86_64-linux-gtk2

Re: Mehrfachslider: Was gibt es?

Beitrag von wennerer »

Hallo Theo,
mein TMultiplexSlider hat bis zu drei Knöpfe. Farben kannst du verschiedene einstellen. Aber es gibt eine min. und eine max. Value die für alle drei Knöpfe gleich ist.

Könnte so aussehen (Skala kann auch weg):
Slider.png
Slider.png (11.38 KiB) 4689 mal betrachtet
Falls du was damit anfangen kannst findest du hier mehr info: viewtopic.php?f=29&t=14033

Viele Grüße
Bernd

Benutzeravatar
theo
Beiträge: 10500
Registriert: Mo 11. Sep 2006, 19:01

Re: Mehrfachslider: Was gibt es?

Beitrag von theo »

Danke!
Wie gesagt, ich kann kein Min-Max und keinen Bereich gebrauchen.
Ich muss den "A" auch über den "B" und "C" hinweg ziehen können etc.
Also keine Begrenzung oder Abhängigkeit.
Geht das damit?

Funktional könnte ich drei TTrackBars nebeneinander legen, aber das braucht viel Platz und sieht bescheiden aus.

wennerer
Beiträge: 524
Registriert: Di 19. Mai 2015, 20:05
OS, Lazarus, FPC: Linux Mint 20 Cinnamon,Lazarus 2.2.6 (rev lazarus_2_2_6) FPC 3.2.2 x86_64-linux-
CPU-Target: x86_64-linux-gtk2

Re: Mehrfachslider: Was gibt es?

Beitrag von wennerer »

Also ich weiß nicht ob ich es richtig verstehe. Innerhalb von min und max Value können sich die Knöpfe frei bewegen und jeder Knopf liefert seinen Wert.
Slider.gif
Slider.gif (54.57 KiB) 4682 mal betrachtet
Viele Grüße
Bernd

Benutzeravatar
theo
Beiträge: 10500
Registriert: Mo 11. Sep 2006, 19:01

Re: Mehrfachslider: Was gibt es?

Beitrag von theo »

Achso, dann könnte das gehen.
Beim TMultiSlider vom Industrial Package kann man den "Value" nicht über "Min" und "Max" hinaus positionieren und den "Min" nicht über den "Max" etc. Die begrenzen einander.

Dann probiere ich das morgen mal aus.

Danke!

Benutzeravatar
theo
Beiträge: 10500
Registriert: Mo 11. Sep 2006, 19:01

Re: Mehrfachslider: Was gibt es?

Beitrag von theo »

Hab's mir mal angeschaut.
Im Prinzip macht es das, was ich möchte. :D
Bin nur mit dem dicken "Rand" nicht ganz glücklich.
Gibt es einen Option, den hellblauen Teil (Eingefärbt zur Veranschaulichung, soll nachher keine spezielle Farbe haben) schmaler zu machen?
Ich hatte die Pfeile gerne näher an der PaintBox links.
So wirken die etwas verloren. Skalen etc. benötige ich nicht.

Danke!

EDIT: Noch eine Frage: Bietet die Komponente eine Möglichkeit, herauszufinden welcher Regler verschoben wurde?
Ich bekomme ja bei dem OnChange3x die drei Werte zurück, weiss aber nicht welcher nun verändert ist.
Muss ich da selber die "Vorher" Werte speichern und vergleichen?


slider.png
slider.png (10.39 KiB) 4598 mal betrachtet

wennerer
Beiträge: 524
Registriert: Di 19. Mai 2015, 20:05
OS, Lazarus, FPC: Linux Mint 20 Cinnamon,Lazarus 2.2.6 (rev lazarus_2_2_6) FPC 3.2.2 x86_64-linux-
CPU-Target: x86_64-linux-gtk2

Re: Mehrfachslider: Was gibt es?

Beitrag von wennerer »

Hallo Theo,
FokusFramewidth hast du wahrscheinlich schon auf 0 gestellt. Dann kannst du nur im Code den Abstand verändern. Wenn du in der CalculateTrack Left und Right veränderst (bei VertikalenSlider) dann wandert die Track zum Beispiel nach links (siehe Bild). Vielleicht kannst du damit erreichen was du möchtest.
Code.png
Code.png (41.25 KiB) 4559 mal betrachtet
LeftSlider.png
LeftSlider.png (15.97 KiB) 4559 mal betrachtet
Noch eine Frage: Bietet die Komponente eine Möglichkeit, herauszufinden welcher Regler verschoben wurde?
Ich bekomme ja bei dem OnChange3x die drei Werte zurück, weiss aber nicht welcher nun verändert ist.
Muss ich da selber die "Vorher" Werte speichern und vergleichen?

Code: Alles auswählen

procedure TForm1.MultiplexSlider1Change3x(const Val1, Val2, Val3: integer);
begin
  Label1.Caption:= inttostr(val1); //Knopf1
  Label2.Caption:= inttostr(val2); //Knopf2
  Label3.Caption:= inttostr(val3); //Knopf3
end;      
Du kannst da leider nicht sehen welcher Knopf der Sender ist (ich glaube aber das könnte ich nachbessern). Würde mich freuen wenn es dir was hilft.

Viele Grüße
Bernd

Benutzeravatar
theo
Beiträge: 10500
Registriert: Mo 11. Sep 2006, 19:01

Re: Mehrfachslider: Was gibt es?

Beitrag von theo »

wennerer hat geschrieben:
Mo 22. Jan 2024, 18:15
...Dann kannst du nur im Code den Abstand verändern. Wenn du in der CalculateTrack Left und Right veränderst (bei VertikalenSlider) dann wandert die Track zum Beispiel nach links (siehe Bild). Vielleicht kannst du damit erreichen was du möchtest.
Danke, probiere ich später aus.
wennerer hat geschrieben:
Mo 22. Jan 2024, 18:15
Du kannst da leider nicht sehen welcher Knopf der Sender ist (ich glaube aber das könnte ich nachbessern). Würde mich freuen wenn es dir was hilft.
Grundsätzlich fände ich das schon wichtig, dass man weiß, welcher Wert verändert wurde.
Bei mir sind die daraus resultierenden Aktionen etwas aufwändiger (Kommandos über USB zur Steuerung eines Geräts), sodass ich nur das "über den Draht" schicken möchte, was auch wirklich notwendig ist.
Da mir OnChange zu diesem Zweck aber sowieso zu oft kommt, werde ich wohl einen Mechanismus basteln müssen, der erst OnMouseUp veränderte Werte überträgt.
Von daher musst du dich jetzt meinetwegen nicht bemühen. :wink:

Danke!

wennerer
Beiträge: 524
Registriert: Di 19. Mai 2015, 20:05
OS, Lazarus, FPC: Linux Mint 20 Cinnamon,Lazarus 2.2.6 (rev lazarus_2_2_6) FPC 3.2.2 x86_64-linux-
CPU-Target: x86_64-linux-gtk2

Re: Mehrfachslider: Was gibt es?

Beitrag von wennerer »

Hallo,
ich habe jetzt doch schnell ein neues Event OnMouseUp3xPlus eingefügt und nach github gepusht.

Code: Alles auswählen

procedure TForm1.MultiplexSlider1MouseUp3xPlus(const aKnobIndex: byte;
  const Val1, Val2, Val3: integer);
begin
 Label1.Caption:= inttostr(val1); //Knopf1
 Label2.Caption:= inttostr(val2); //Knopf2
 Label3.Caption:= inttostr(val3); //Knopf3
 Label4.Caption:=inttostr(aKnobIndex);
end;   
Ich denke das ist echt sinnvol. Vielleicht möchte das ja noch jemand anders nutzen.

Viele Grüße
Bernd

Benutzeravatar
theo
Beiträge: 10500
Registriert: Mo 11. Sep 2006, 19:01

Re: Mehrfachslider: Was gibt es?

Beitrag von theo »

wennerer hat geschrieben:
Mo 22. Jan 2024, 19:23
ich habe jetzt doch schnell ein neues Event OnMouseUp3xPlus eingefügt und nach github gepusht.
Ich denke das ist echt sinnvoll. Vielleicht möchte das ja noch jemand anders nutzen.
Danke! :D
Das ist auf jeden Fall besser, als vorher-nacher Werte vergleichen zu müssen.

Antworten