Animated toggle switch

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

Animated toggle switch

Beitrag von theo »

Hallo

Ich weiss nicht wie man die Dinger auf Deutsch nennt, deshalb der englische Titel.
Hat jemand schon mal einen solchen Toggle-Button/Schalter/Checkbox als Lazarus Komponente gesehen?

Bild

Die trifft man ja heute überall an.
Es geht mir um den Stil, nicht um eine Ersatzfunktionalität.

Danke!

wp_xyz
Beiträge: 4895
Registriert: Fr 8. Apr 2011, 09:01

Re: Animated toggle switch

Beitrag von wp_xyz »

Es gibt einen ähnlichen TOnOffSwitch im Industrial-Package, wobei aber die exakte Darstellung anders ist:
Dateianhänge
TOnOffSwitch_OFF.png
TOnOffSwitch_OFF.png (495 Bytes) 6712 mal betrachtet
TOnOffSwitch_ON.png
TOnOffSwitch_ON.png (561 Bytes) 6712 mal betrachtet

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

Re: Animated toggle switch

Beitrag von theo »

Den hatte ich gar nicht auf dem Schirm.
Er sieht etwas anders aus als die heute üblichen, aber ja, kann man machen.
Das OnClick Ereignis muss man noch zum Umschalten einhängen, sonst muss man den wirklich ziehen, was ja eigentlich unsinnig ist, da es nichts einzustellen gibt.

Danke!

P.S. Ich hätte diesen Schalter-Typus eigentlich bei den BGRAControls bzw. Material Design erwartet, aber dort gibt es den nicht.
Dateianhänge
laz_ind_toggle.png
laz_ind_toggle.png (1.81 KiB) 6709 mal betrachtet

wp_xyz
Beiträge: 4895
Registriert: Fr 8. Apr 2011, 09:01

Re: Animated toggle switch

Beitrag von wp_xyz »

Der Hintergedanke, als ich den OnOffSwitch geschrieben habe, war sowas wie ein Schiebeschalter an einem elektronischen Gerät (was ja die Idee hinter allen Industrial-Komponenten ist), daher auch die Schiebe-Geste; ein Klick war mir zu aggressiv, da wäre der Schalterstatus zu leicht zu verstellen, aber bei einer Checkbox ist das auch nicht anders, daher werde ich mir das nochmal überlegen, vielleicht aktivierbar über ein Property, z.B. TSwitchMode = (smSlide, smClick, smClickOrSlide) (*). Auch bei BorderStyle könnte man noch eine weitere Variante bsRounded einbauen und käme damit deiner ursprünglichen Vorstellung näher. Demnächst einmal...

(*) Ach ja, der Click funktioniert schon, allerdings nur als Double-Click.

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

Re: Animated toggle switch

Beitrag von theo »

Ich hatte mir schon gedacht, dass der eher ein "physisches" Vorbild hat.
Aber so ein Switch wie ich eigentlich haben wollte, würde Lazarus schon gut zu Gesicht stehen.
Der TOnOffSwitch ist sicher nahe dran.
Solche Schalter werden ja auch mit Radiogroups kombiniert (Siehe Chrome Einstellungen Screenshot).
Das ist also nicht entweder-oder.
Ich könnte mir auch ein Tri-State Switch vorstellen (z.B. um eine Gruppe von Checkboxen zu schalten: Alle ein - manuelle Auswahl - alle aus).
Nur so eine Idee...
Aber der TOnOffSwitch ist schon mal besser als nichts. :D
Dateianhänge
chrome_switch.png
chrome_switch.png (52.3 KiB) 6693 mal betrachtet

wp_xyz
Beiträge: 4895
Registriert: Fr 8. Apr 2011, 09:01

Re: Animated toggle switch

Beitrag von wp_xyz »

Delphi XE11 hat übrigens einen TToggleSwitch, ähnlich zum TOnOffSwitch, aber mit ganz seltsamem Verhalten: Im Designmode ist er abgerundet und man kann mit entsprechendem Wert für ThumbWidth auch einen kreisrunden Schieber hingekommen, aber zur Laufzeit wird er eckig wie der TOnOffSwitch. Das Ding scheint noch nicht ganz fertig zu sein.
Dateianhänge
toggleswitch.png
toggleswitch.png (7.45 KiB) 6666 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: Animated toggle switch

Beitrag von wennerer »

Hallo,
also wenn man etwas zusätzlichen Code nicht scheut und es halt möchte kann man mit meinem MultiButton so was machen:

Toggle.gif
Toggle.gif (45.99 KiB) 6634 mal betrachtet
PS: Die Icons sind von hier: https://commons.wikimedia.org/wiki/GNOME_Desktop_icons



Viele Grüße
Bernd
Dateianhänge
project1.zip
(111.25 KiB) 112-mal heruntergeladen

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

Re: Animated toggle switch

Beitrag von theo »

Auch sehr gut. Danke!

Trotzdem wäre eine Komponente, welche nur ein Animated Toggle Switch sein will immer noch ein Thema, denke ich.
Diese müsste mMn mit BGRABitmap antialiased gezeichnet werden, damit die Rundungen hübsch aussehen.

wp_xyz
Beiträge: 4895
Registriert: Fr 8. Apr 2011, 09:01

Re: Animated toggle switch

Beitrag von wp_xyz »

Poste das im englischen Forum, so die Autoren von BGRA deinen Wunsch sehen.

wp_xyz
Beiträge: 4895
Registriert: Fr 8. Apr 2011, 09:01

Re: Animated toggle switch

Beitrag von wp_xyz »

wennerer hat geschrieben:
Sa 14. Okt 2023, 18:09
Die Icons [...]
Ganz einfach geht's mit einem TImage und Laz 3.0+:
- ImageList auf Formular, die beiden ON/OFF Bilder reinladen
- TImage aufs Formular - das soll der ToggleSwitch werden. AutoSize = true
- ImageList mit dem TImage verbinden
- Dann den folgenden super-intelligenten Code für das OnClick-Event des Image:

Code: Alles auswählen

procedure TForm1.Image1Click(Sender: TObject);
begin
  Image1.ImageIndex := (Image1.ImageIndex + 1) mod 2;
end; 
Benötigt wegen der ImageList-Property des TImage Laz v3.0. Bei älteren Version muss man die ON/OFF Bilder in den Resourcen speichern und jeweils beim Klick neu laden.

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

Re: Animated toggle switch

Beitrag von theo »

wp_xyz hat geschrieben:
Sa 14. Okt 2023, 19:01
Poste das im englischen Forum, so die Autoren von BGRA deinen Wunsch sehen.
OK Danke.
Habe die Frage mal dort auch noch gestellt.
https://forum.lazarus.freepascal.org/in ... n.html#new

Benutzeravatar
Ally
Beiträge: 263
Registriert: Do 11. Jun 2009, 09:25
OS, Lazarus, FPC: Win und Lazarus Stable release
CPU-Target: x64

Re: Animated toggle switch

Beitrag von Ally »

Hallo theo,

hier noch ein Vorschlag der ohne zusätzliche Komponenten auskommt, High-DPI-tauglich ist und bei dem das Design leicht anpassbar ist.
-
OnOff.png
OnOff.png (19.04 KiB) 6464 mal betrachtet
Dateianhänge
OnOff.zip
(23.91 KiB) 124-mal heruntergeladen

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

Re: Animated toggle switch

Beitrag von theo »

Danke auch an Ally.

Auch schön, aber das Ist halt auch nicht wirklich eine Komponente und nicht wirklich animiert etc.
Zwei Bilder hin-und herschalten geht natürlich, aber irgendwie hatte ich mir den Switch etwas ausgefeilter vorgestellt. :wink:

Wie im englischen Forum schon gezeigt, finde ich das recht schön.
Der Kreis müsste sich aber nicht drehen, das finde ich überflüssig und auch schieben wäre nicht nötig.
Aber der Farb- und Textwechsel, das ist schon nett.

Bild

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2641
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Animated toggle switch

Beitrag von m.fuchs »

theo hat geschrieben:
Mo 16. Okt 2023, 12:03
Aber der Farb- und Textwechsel, das ist schon nett.
Das ist aus (meiner Sicht) nicht nur nett, sondern eine absolute Notwendigkeit.
Wenn ich so etwas hier sehe:
bad_toggle_switch.png
bad_toggle_switch.png (33.19 KiB) 6425 mal betrachtet

Da weiß ich nie, was das nun bedeutet.

Also Toggle-Switch nie ohne Beschriftung und mit klarem Farbwechsel (rot/grün)!

Womit wir zu der Frage kommen: wozu brauch man dieses Control? Eine Checkbox ist simpler, bekannter und kann auf zusätzliche Beschriftung für den Status verzichten.
Finde ich deutlich sinnvoller.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

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

Re: Animated toggle switch

Beitrag von theo »

m.fuchs hat geschrieben:
Mo 16. Okt 2023, 14:21
Das ist aus (meiner Sicht) nicht nur nett, sondern eine absolute Notwendigkeit.
...
Also Toggle-Switch nie ohne Beschriftung und mit klarem Farbwechsel (rot/grün)!
Mit "nett" meinte ich die Animation.
Beschriftung und Farbwechsel finde ich auch notwendig, aber das schafft der TOnOffSwitch - den ich übrigens in der bsThin3D Variante ziemlich gelungen finde - auch.
m.fuchs hat geschrieben:
Mo 16. Okt 2023, 14:21
Womit wir zu der Frage kommen: wozu brauch man dieses Control?
Was braucht man schon? :lol:
Ich habe im ersten Posting schon gesagt "Es geht mir um den Stil, nicht um eine Ersatzfunktionalität."
Ich denke es könnte Lazarus nicht schaden, etwas modernere UI Elemente anzubieten um etwas frischer zu wirken.
Die Benutzung wäre natürlich absolut freiwillig. :wink:

Antworten