Ein Slider, mal testen
-
- Beiträge: 585
- 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: Ein Slider, mal testen
So ich habe nun mal versucht die letzten Feinheiten einzubauen.
Dank Siro läuft es jetzt meiner Meinung nach richtig Rund. Deshalb nochmal im Anhang die Dateien.
Viele Grüße
Bernd
Dank Siro läuft es jetzt meiner Meinung nach richtig Rund. Deshalb nochmal im Anhang die Dateien.
Viele Grüße
Bernd
- Dateianhänge
-
Release2b.zip
- (135.59 KiB) 210-mal heruntergeladen
- Winni
- Beiträge: 1577
- Registriert: Mo 2. Mär 2009, 16:45
- OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
- CPU-Target: 64Bit
- Wohnort: Fast Dänemark
Re: Ein Slider, mal testen
Hi!
Ich bin jetzt endlich dazu gekommen, Deinen Slider in der Version 2b zu testen.
Sehr schön, sehr stabil und viele zusätzliche Möglichkeiten.
Um ein vollwertiger Ersatz für den TTaskbar zu sein, fehlen noch drei Funktionalitäten:
* Das Umdrehen oder Spiegeln der Skala: Max nach links und Min nach rechts. Das ist manchmal notwendig z.B. bei technischen Lösungen.
* Der Slider muss auch "hochkant", also vertikal gehen. Stell Dir vor, jemand möchte Deinen Slider für 16 Kanäle eines Mischpults benutzen.
Das ist horizontal nicht möglich (bzw. extrem unüblich ....)
* Für's Design sollte man entscheiden können, ob die Skala links oder rechts angezeigt wird.
Aber echt gut bisher.
Um neuen Benutzern den Zugang zu erleichtern, solltest Du Dir noch mal die Begrifflichkeiten im TTaskbar ansehen und die übernehmen.
Grüße von
Winni
PS.: Getestet unter Linux64, gtk2, Laz 2.06, fpc 3.04
Ich bin jetzt endlich dazu gekommen, Deinen Slider in der Version 2b zu testen.
Sehr schön, sehr stabil und viele zusätzliche Möglichkeiten.
Um ein vollwertiger Ersatz für den TTaskbar zu sein, fehlen noch drei Funktionalitäten:
* Das Umdrehen oder Spiegeln der Skala: Max nach links und Min nach rechts. Das ist manchmal notwendig z.B. bei technischen Lösungen.
* Der Slider muss auch "hochkant", also vertikal gehen. Stell Dir vor, jemand möchte Deinen Slider für 16 Kanäle eines Mischpults benutzen.
Das ist horizontal nicht möglich (bzw. extrem unüblich ....)
* Für's Design sollte man entscheiden können, ob die Skala links oder rechts angezeigt wird.
Aber echt gut bisher.
Um neuen Benutzern den Zugang zu erleichtern, solltest Du Dir noch mal die Begrifflichkeiten im TTaskbar ansehen und die übernehmen.
Grüße von
Winni
PS.: Getestet unter Linux64, gtk2, Laz 2.06, fpc 3.04
-
- Beiträge: 585
- 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: Ein Slider, mal testen
Hallo Winni,
vielen Dank für's testen und für deine Rückmeldung. Mit deinen Anmerkungen hast du natürlich vollkommen recht. Vor allem bei der Namensvergabe muss ich wohl tatsächlich mal ins spicken gehen, das finde ich selber grausam
. Ich hab mir auch den Slider in Industrial (wie von wp-xyz angesprochen) jetzt mal angesehen. Da kann ich wohl auch einiges abschauen.
Viele Grüße
Bernd
vielen Dank für's testen und für deine Rückmeldung. Mit deinen Anmerkungen hast du natürlich vollkommen recht. Vor allem bei der Namensvergabe muss ich wohl tatsächlich mal ins spicken gehen, das finde ich selber grausam

Viele Grüße
Bernd
-
- Beiträge: 585
- 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: Ein Slider, mal testen
Hallo,
ich habe nun mal versucht alle Anregungen um zusetzten und hoffe meine Bezeichnungen und die Anordnung im OI sind jetzt etwas eingängiger.
Der Slider kann jetzt von Horizontal auf Vertikal umgeschaltet werden, ebenso ist ein Reversed möglich.
Natürlich ist im Anhang ein kleines Testprogramm dabei. Falls jemand Lust und Zeit hat freue ich mich über Kritik.
Winni schrieb:
ich habe nun mal versucht alle Anregungen um zusetzten und hoffe meine Bezeichnungen und die Anordnung im OI sind jetzt etwas eingängiger.
Der Slider kann jetzt von Horizontal auf Vertikal umgeschaltet werden, ebenso ist ein Reversed möglich.
Natürlich ist im Anhang ein kleines Testprogramm dabei. Falls jemand Lust und Zeit hat freue ich mich über Kritik.
Winni schrieb:
Das kann natürlich nicht mein Ziel sein. Ich wollte hiermit nur mein Wissen erweitern und das ist mir auf jeden Fall geglückt!Um ein vollwertiger Ersatz für den TTaskbar zu sein, fehlen noch ....

- Dateianhänge
-
Release3.zip
- (139.55 KiB) 192-mal heruntergeladen
-
- Beiträge: 749
- Registriert: Di 23. Aug 2016, 14:25
- OS, Lazarus, FPC: Windows 11
- CPU-Target: 64Bit
- Wohnort: Berlin
Re: Ein Slider, mal testen
Hallo Wennerer,
die Komponente wächst und das sieht doch schon sehr gut aus.
Kleinigkeit: wegen der Übersichtlichkeit
Methoden / Proceduren würe ich nicht zu lang machen,
da fällt die Orientierung etwas(sehr) schwer. 1152 Zeilen für paint
Deine paint Methode würde ich zumindest für Horizontal und Vertikal
in 2 separate Proceduren packen.
Das schöne an dem Lazarus Editor ist nämlich, dass man in der obersten Zeile (die ist dann blau hinterlegt) sieht in
welcher Procedure man sich grade befindet.
Wenn Du dass nun aufteilst in 2 verschiedene paint proceduren, ist die Orientierung auch für Dich bei Änderungen wieder eindeutig.
Das muss man natürlich nicht machen, aber momentan sieht man nur, beim editieren, dass man sich in der procedure paint befindet,
ob der angezeigte Code grade für den Horizontalen oder Vertikalen Slider zuständig ist, weis man nicht.
So in etwa könnte es dann aussehen:
Siro
die Komponente wächst und das sieht doch schon sehr gut aus.
Kleinigkeit: wegen der Übersichtlichkeit
Methoden / Proceduren würe ich nicht zu lang machen,
da fällt die Orientierung etwas(sehr) schwer. 1152 Zeilen für paint

Deine paint Methode würde ich zumindest für Horizontal und Vertikal
in 2 separate Proceduren packen.
Das schöne an dem Lazarus Editor ist nämlich, dass man in der obersten Zeile (die ist dann blau hinterlegt) sieht in
welcher Procedure man sich grade befindet.
Wenn Du dass nun aufteilst in 2 verschiedene paint proceduren, ist die Orientierung auch für Dich bei Änderungen wieder eindeutig.
Das muss man natürlich nicht machen, aber momentan sieht man nur, beim editieren, dass man sich in der procedure paint befindet,
ob der angezeigte Code grade für den Horizontalen oder Vertikalen Slider zuständig ist, weis man nicht.
So in etwa könnte es dann aussehen:
Code: Alles auswählen
TSliderComponent = class (TCustomControl)
private
.
.
protected
.
. // diese beiden sind nur innnerhalb der Komponente sinnvoll daher würde ich sie in den protected Bereich schieben
procedure PaintHorizontal;
procedure PaintVertical;
.
.
public
procedure Paint; override; // das eigentliche Paint würde ich auch weiterhin im public Bereich lassen
.
property
.
.
end;
procedure TSliderComponent.PaintHorizontal;
begin
// der entsprechend Code
end;
procedure TSliderComponent.PaintVertical;
begin
// der entsprechend Code
end;
// die eigentliche Paint Methode nun aufteilen damit es übersichtlicher wird:
procedure TSliderComponent.Paint;
begin
if FOrientation = scHorizontal then PaintHorizontal
else PaintVertical;
end;
Grüße von Siro
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...
-
- Beiträge: 585
- 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: Ein Slider, mal testen
Hallo Siro,
du weißt gar nicht wie oft ich in der Paint Procedure rauf und runter gescrollt habe. Das mit dem Aufteilen in zwei oder mehrere Proceduren ist für mich ein sehr wertvoller Tipp. Mag zwar nur eine Kleinigkeit sein aber gerade solche Kleinigkeiten können dir das Leben leichter oder schwerer machen!
Ich werde es auf jeden Fall beherzigen (auch in zukünftigen Projekten) und noch einbauen.
Vielen Dank
Bernd
du weißt gar nicht wie oft ich in der Paint Procedure rauf und runter gescrollt habe. Das mit dem Aufteilen in zwei oder mehrere Proceduren ist für mich ein sehr wertvoller Tipp. Mag zwar nur eine Kleinigkeit sein aber gerade solche Kleinigkeiten können dir das Leben leichter oder schwerer machen!
Ich werde es auf jeden Fall beherzigen (auch in zukünftigen Projekten) und noch einbauen.
Vielen Dank
Bernd
Re: Ein Slider, mal testen
Ich würde das Paint noch weiter unterteilen: Malen des Untergrunds, des Sliders, der Markierungen usw. Du hast doch eh schon diverse Hilfeobjekte angelegt, die die für sie zuständige Zeichenaufgaben übernehmen können. Dazu müsste z.B. TTrack eine Methode "Draw(ACanvas: TCanvas; ARect: TRect)" zur Verfügung stellen - dann kann sich die Schiebebahn auf dem canvas des aufrufenden Objekts (TSliderComponent) im angegebenen Rechteck selbst zeichnen und TSliderComponent.Paint muss für diesen Teil nur noch Track.Draw(Canvas, R) aufrufen. Genauso für die anderen Hilfsobjekte.
-
- Beiträge: 585
- 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: Ein Slider, mal testen
Hallo wp_xyz,
das geht natürlich nochmal einen ganzen Schritt weiter (in Richtung Professionalität). Finde ich aber wirklich sehr interessant und elegant. Ich werde mich daran auf jeden Fall versuchen. Werde aber bestimmt etwas Zeit für die Umsetzung benötigen.
Vielen Dank
Bernd
das geht natürlich nochmal einen ganzen Schritt weiter (in Richtung Professionalität). Finde ich aber wirklich sehr interessant und elegant. Ich werde mich daran auf jeden Fall versuchen. Werde aber bestimmt etwas Zeit für die Umsetzung benötigen.

Vielen Dank
Bernd
- af0815
- Lazarusforum e. V.
- Beiträge: 6661
- 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: Ein Slider, mal testen
Vielleicht mal an ein Quellcoderepository wie GIT oder SVN denkenwennerer hat geschrieben:...das geht natürlich nochmal einen ganzen Schritt weiter (in Richtung Professionalität)...

Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 585
- 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: Ein Slider, mal testen
Hallo af0815,
du hast da ein Thema angesprochen von dem ich mit Fug und Recht behaupten kann ich habe nicht mal Prospektwissen.
Ich habe natürlich schon mal Google und Wikipedia bemüht, habe aber außer allgemeine Beschreibungen nichts für mich greifbares gefunden. Gibt es irgendwo eine Beschreibung bzw. Anleitung für SVN oder GIT die (für jemanden ohne Vorwissen) mal die grundlegenden Funktionen beschreibt?
Viele Grüße
Bernd
du hast da ein Thema angesprochen von dem ich mit Fug und Recht behaupten kann ich habe nicht mal Prospektwissen.
Ich habe natürlich schon mal Google und Wikipedia bemüht, habe aber außer allgemeine Beschreibungen nichts für mich greifbares gefunden. Gibt es irgendwo eine Beschreibung bzw. Anleitung für SVN oder GIT die (für jemanden ohne Vorwissen) mal die grundlegenden Funktionen beschreibt?
Viele Grüße
Bernd
- af0815
- Lazarusforum e. V.
- Beiträge: 6661
- 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: Ein Slider, mal testen
google: git tutorial deutsch
Da findet man doch was. sogar jede Menge. Ev. Git durch Quellcodeverwaltung ersetzen, wenn man es allgemeiner haben will.
ZB. https://www.atlassian.com/de/git
https://boolie.org/git-github-anfaenger-tutorial/
Da findet man doch was. sogar jede Menge. Ev. Git durch Quellcodeverwaltung ersetzen, wenn man es allgemeiner haben will.
ZB. https://www.atlassian.com/de/git
https://boolie.org/git-github-anfaenger-tutorial/
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 585
- 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: Ein Slider, mal testen
Hallo
Da kommt ja echt jede Menge. War offensichtlich mit den falschen Suchbegriffen unterwegs. Werde ich so nach und nach mal lesen und probieren.
Danke!
Bernd
Da kommt ja echt jede Menge. War offensichtlich mit den falschen Suchbegriffen unterwegs. Werde ich so nach und nach mal lesen und probieren.
Danke!
Bernd
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1580
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Ein Slider, mal testen
Das fand ich sehr hilfreich.
http://www-cs-students.stanford.edu/~bl ... /ch01.html
http://www-cs-students.stanford.edu/~bl ... /ch01.html
-
- Beiträge: 585
- 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: Ein Slider, mal testen
Hallo,
ich melde mich mit meiner Komponente mal wieder.
Siro schrieb:
wp_xyz schrieb:
Und noch eine Frage:
Kann man einer Komponente eine andere Komponente hinzufügen. Zur Laufzeit sollte man die ja problemlos erzeugen können. Aber wie bringt man die dann in den ObjektInspektor? Mein Plan wäre noch ein Label oben anzufügen um eine Caption einzublenden
Viele Grüße Bernd
ich melde mich mit meiner Komponente mal wieder.
Siro schrieb:
Hab ich mir zu Herzen genommen und versucht umzusetzen. Hab jetzt immerhin ca. 450 Zeilen weniger! Und die Fehlersuche gestaltet sich auch einfacher. Vielleicht hat noch mal jemand Zeit den Code durch zusehen. Wo würde ein Programmierer jetzt noch ansetzen um den Code zu verbessern?Kleinigkeit: wegen der Übersichtlichkeit
Methoden / Proceduren würe ich nicht zu lang machen,
da fällt die Orientierung etwas(sehr) schwer. 1152 Zeilen für paint
wp_xyz schrieb:
Darüber habe ich länger nach gedacht und leider noch nicht so umgesetzt. Wenn ich das richtig verstehe müsste ich zum Beispiel beim Verschieben des Knopfes das Rechteck zumindest so groß machen wie der Bereich ist wo der Knopf war und wo er jetzt ist? Gibt's da in den Demos ein kleines Beispiel wo nur ein Teil des Canvas aktualisiert wird?Dazu müsste z.B. TTrack eine Methode "Draw(ACanvas: TCanvas; ARect: TRect)" zur Verfügung stellen - dann kann sich die Schiebebahn auf dem canvas des aufrufenden Objekts (TSliderComponent) im angegebenen Rechteck selbst zeichnen und TSliderComponent.Paint muss für diesen Teil nur noch Track.Draw(Canvas, R) aufrufen.
Und noch eine Frage:
Kann man einer Komponente eine andere Komponente hinzufügen. Zur Laufzeit sollte man die ja problemlos erzeugen können. Aber wie bringt man die dann in den ObjektInspektor? Mein Plan wäre noch ein Label oben anzufügen um eine Caption einzublenden

Viele Grüße Bernd
- Dateianhänge
-
Release4.zip
- (140.14 KiB) 196-mal heruntergeladen
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1580
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Ein Slider, mal testen
Klar,wennerer hat geschrieben: Sa 2. Mai 2020, 23:18 Und noch eine Frage:
Kann man einer Komponente eine andere Komponente hinzufügen. Zur Laufzeit sollte man die ja problemlos erzeugen können. Aber wie bringt man die dann in den ObjektInspektor?
Code: Alles auswählen
type
TMyComponent = class ( TWinControl )
private
fLabel : TLabel;
published
property CaptionLabel : TLabel read fLabel write fLabel;
end;
Viele Grüße
Michael