Schiebeschalter
-
hbr
- Beiträge: 325
- Registriert: Mi 20. Feb 2013, 10:30
- OS, Lazarus, FPC: Win (L 2.2.4 FPC 3.2.2)
- CPU-Target: 32/64,ARM(RPi)
Schiebeschalter
Hallo,
gibt es eine Erweiterung für Lazarus die eine CheckBox als Schiebeschalter oder Kippschalter darstellt?
Gruß
gibt es eine Erweiterung für Lazarus die eine CheckBox als Schiebeschalter oder Kippschalter darstellt?
Gruß
-
Linkat
- Lazarusforum e. V.
- Beiträge: 581
- Registriert: So 10. Sep 2006, 23:24
- OS, Lazarus, FPC: Linux Mint 22.1; Lazarus 4.2 FPC 3.2.2; RaspiOS
- CPU-Target: AMD 64, ARM 64
- Wohnort: nr Stuttgart
Re: Schiebeschalter
Guten Morgen hbr,
versuch mal die Eye-Candy-Controls:
http://wiki.freepascal.org/Eye-Candy_Controls
Vielleicht ist was dabei, das dir gefällt.
Gruß, Linkat
versuch mal die Eye-Candy-Controls:
http://wiki.freepascal.org/Eye-Candy_Controls
Vielleicht ist was dabei, das dir gefällt.
Gruß, Linkat
Linux Mint 22.1; Lazarus 4.2 FPC 3.2.2; RaspiOS
-
hbr
- Beiträge: 325
- Registriert: Mi 20. Feb 2013, 10:30
- OS, Lazarus, FPC: Win (L 2.2.4 FPC 3.2.2)
- CPU-Target: 32/64,ARM(RPi)
Re: Schiebeschalter
Danke,
schon mal eine Variante.
Gruß
schon mal eine Variante.
Gruß
Re: Schiebeschalter
Aber für einen einfachen Schiebeschalter musst du dir keine riesige Komponentensammlung installieren. Es geht auch mit Bordmitteln. Zum Beispiel ein Panel, in das mit Align=alLeft ein quadratisches TShape gesetzt ist. Das Panel muss doppelt so breit sein wie TShape. Im OnClick des TShape setzt du dessen Align auf alRight, falls Align gerade alLeft ist, bzw andernfalls auf alLeft. Damit rutscht das Quadrat bei jedem Klick von links nach rechts bzw umgekehrt. Dem Shape gibst du über dessen BorderSpacing.Around etwas Abstand zum Panel. Das kann man natürlich auch in eine Komponente packen, aber für einfache Sachen reicht es auch so.
- Dateianhänge
-
Schiebeschalter.zip- (2.14 KiB) 100-mal heruntergeladen
-
hbr
- Beiträge: 325
- Registriert: Mi 20. Feb 2013, 10:30
- OS, Lazarus, FPC: Win (L 2.2.4 FPC 3.2.2)
- CPU-Target: 32/64,ARM(RPi)
Re: Schiebeschalter
Danke, auch nicht schlecht,
doch bei ca. 60 Checkboxen ein ziemlicher Aufwand.
Gruß
doch bei ca. 60 Checkboxen ein ziemlicher Aufwand.
Gruß
- af0815
- Lazarusforum e. V.
- Beiträge: 7267
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Schiebeschalter
Wieso 1x programmieren 60x nutzenhbr hat geschrieben:Danke, auch nicht schlecht,
doch bei ca. 60 Checkboxen ein ziemlicher Aufwand.
Gruß
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
Re: Schiebeschalter
Wie man's nimmt. Wozu gibt es Sourcecode?
- Dateianhänge
-
Schiebeschalter2.zip- (2.62 KiB) 94-mal heruntergeladen
-
hbr
- Beiträge: 325
- Registriert: Mi 20. Feb 2013, 10:30
- OS, Lazarus, FPC: Win (L 2.2.4 FPC 3.2.2)
- CPU-Target: 32/64,ARM(RPi)
Re: Schiebeschalter
Danke, versteh ich nicht, was soll mann damit machen?wp_xyz hat geschrieben:Wie man's nimmt. Wozu gibt es Sourcecode?
Läuft nicht, zwei Fehlermeldungen.
unit2.pas(75,11) Error: identifier idents no member "OnMouseEnter"
unit2.pas(78,11) Error: identifier idents no member "OnMouseLeave"
Re: Schiebeschalter
Ich wollte dir nur zeigen, dass kaum mehr Code nötig ist, um 60 solcher handgemachter Schalter zu erzeugen.hbr hat geschrieben:Danke, versteh ich nicht, was soll mann damit machen?
Dann musst du einen uralten Lazarus haben. Laz 1.4.4, die älteste Version, die ich z.Zt auf dem Rechner habe, übersetzt das Programm klaglos, und die neueren Versionen tun's erst recht.hbr hat geschrieben:Läuft nicht, zwei Fehlermeldungen.
unit2.pas(75,11) Error: identifier idents no member "OnMouseEnter"
unit2.pas(78,11) Error: identifier idents no member "OnMouseLeave"
-
hbr
- Beiträge: 325
- Registriert: Mi 20. Feb 2013, 10:30
- OS, Lazarus, FPC: Win (L 2.2.4 FPC 3.2.2)
- CPU-Target: 32/64,ARM(RPi)
Re: Schiebeschalter
Ah ja, muss mal die Alte Version vom Rechner verbannen.
Hier werden ja jetzt in FormCreate die Switches mittels Schleifen erstellt.
Wie mach ich denn das, wenn ich in meinem Programm in verschiedene Formen die Switches verteilt habe und diese per Top und Left Positionieren will?
Hier werden ja jetzt in FormCreate die Switches mittels Schleifen erstellt.
Wie mach ich denn das, wenn ich in meinem Programm in verschiedene Formen die Switches verteilt habe und diese per Top und Left Positionieren will?
Re: Schiebeschalter
Naja, jetzt lässt du aber die Katze aus dem Sack... Mit den Panels wird's dann etwas umständlich. Einfacher wird's mit einem TFrame, in dessen Unit man den gesamten benötigten Hilfscode packen kann. Damit wird's fast so einfach wie mit einer Komponente. Den Frame kann man von jedem Formular aus einbinden, der den Schalter benötigt. Den Frame positioniert man mit Hilfe seiner Eigenschaften Left und Top.
- Dateianhänge
-
Schiebeschalter4.zip- (3.69 KiB) 114-mal heruntergeladen
-
Mathias
- Beiträge: 7251
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Schiebeschalter
Wieso nicht einen einfachen Scrollbar nehmen ?
Code: Alles auswählen
procedure TForm1.FormCreate(Sender: TObject);
begin
with ScrollBar1 do begin
Width := 56;
max := 1;
end;
end;
procedure TForm1.ScrollBar1Change(Sender: TObject);
begin
Caption := IntToStr(ScrollBar1.Position);
end; Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
hbr
- Beiträge: 325
- Registriert: Mi 20. Feb 2013, 10:30
- OS, Lazarus, FPC: Win (L 2.2.4 FPC 3.2.2)
- CPU-Target: 32/64,ARM(RPi)
Re: Schiebeschalter
Super,wp_xyz hat geschrieben:Naja, jetzt lässt du aber die Katze aus dem Sack... Mit den Panels wird's dann etwas umständlich. Einfacher wird's mit einem TFrame, in dessen Unit man den gesamten benötigten Hilfscode packen kann. Damit wird's fast so einfach wie mit einer Komponente. Den Frame kann man von jedem Formular aus einbinden, der den Schalter benötigt. Den Frame positioniert man mit Hilfe seiner Eigenschaften Left und Top.
doch was muß ich in switchunit hinzufügen, damit das Shape ohne Zwischenraum im Panel eingepasst wird, also TOP und Bottom Bündig.
Denn wenn ich die Größe auf 14 Stelle(welche ich benötige), ist mir das Shape zu schmal und die Lücke oben und unten ist zu groß.
Gruß
Nachtrag:
shape1.BorderSpacing.Bottom := -1; in Create Funktioniert
Zuletzt geändert von hbr am So 11. Sep 2016, 22:34, insgesamt 1-mal geändert.
-
hbr
- Beiträge: 325
- Registriert: Mi 20. Feb 2013, 10:30
- OS, Lazarus, FPC: Win (L 2.2.4 FPC 3.2.2)
- CPU-Target: 32/64,ARM(RPi)
Re: Schiebeschalter
Danke,Mathias hat geschrieben:Wieso nicht einen einfachen Scrollbar nehmen ?
Code: Alles auswählen
procedure TForm1.FormCreate(Sender: TObject); begin with ScrollBar1 do begin Width := 56; max := 1; end; end; procedure TForm1.ScrollBar1Change(Sender: TObject); begin Caption := IntToStr(ScrollBar1.Position); end;
aber sieht nicht gut aus.
Gruß