German Probleme mit B4XSeekBar

strupp01

Active Member
Licensed User
Longtime User
Ich versuche eine B4XSeekbar in mein Programm einzubauen. Es gibt jedoch einige Probleme. Da ich im Netz kein Beispiel mit Anpassung der SeekBar-Größe im Code finde habe ich ein Mini-Testprogramm erstellt, dass ich mit beistelle.
Beim Start des Programms wird die SeekBar dargestellt mit der gewünschten länge. Anfangs- und Endpunkt liegen knapp neben den Panel-Kanten.
1700344805802.png

Bewege ich jetzt die SeekBar, so wird die Zahl (hier 20) mit bewegt und entsprechend der Position im Wert geändert. Es wird aber auch der rechte Endpunkt der SeekBar nach links verschoben.
1700345022222.png

Warum ???
Zusätzlich wüsste ich gern, ob der Verschiebepunkt größer eingestellt werden kann. Wenn ich die Liniendicke mit SeekBar.Size1 und SeekBar.Size2 verändere, ist dieser Punkt gar nicht mehr zu sehen.
 

Attachments

  • Test_Seekbar.zip
    10.3 KB · Views: 49
Last edited:

strupp01

Active Member
Licensed User
Longtime User
Sorry, falsche Zip-Datei erwischt. Jetzt ist die richtige Zip-Datei hinterlegt
 

klaus

Expert
Licensed User
Longtime User
Ich habe mir Dein Programm angeschaut.
Ich habe festgestellt dass eine Grössenänderung von B4XSeekbar in B4A nicht richtig behandelt wird.
Um das zu veranschaulichen habe ich eine zweite B4XSeekbar hinzugefügt, diese funktioniert normal nach dem Start des Programmes.
Wenn Du dann auf den Button Monat2 drückst wird die Breite von B4XSeekbar2 vergrössert und da funktioniert es nicht mehr wie gewünscht.

Ich habe Dein Programm geändert, die Dimesionsanpassung weggenommen, aber die Breite im Designer mit Anchors angepasst.
Die Rechnung für Label22.Left war falsch, ich habe sie geändert.

1700393891383.png
 

Attachments

  • Test_Seekbar_1.zip
    10.4 KB · Views: 47

Alexander Stolte

Expert
Licensed User
Longtime User
Ich habe mal alles korrektiert.
  1. Bitte nutze immer B4XPages, dass macht so vieles einfacher
  2. Arbeite im Designer mit Ankerpunkten, richte das Panel und die SeekBar in beide Richtugnen aus, dann musst du das nicht im code machen.
  3. Deklariere deine Panels, Labels und Buttons als B4XView, das erleichtert dir auch vieles
  4. Ich habe im SeekBar_Value die Richtige Formel hinterlegt, damit die Position des labels richtig Kalkuliert wird

Das neue Projekt befindet sich im Anhang.
 

Attachments

  • B4X Seekbar Example.zip
    11.5 KB · Views: 50

strupp01

Active Member
Licensed User
Longtime User
Hallo Klaus,
schön das du mir mal wieder hilfst. Meine Seekbar1 scheint jetzt nach deinen Änderungen so zu funktionieren, wie ich es wollte. Jedoch habe ich die Dimensionsanpassung bewusst ins Programm eingebracht, um bei unterschiedlich großen Displays die gleichen Darstellungen zu erreichen. Dies geht dann so nicht. Kann ich das im Programm nicht anpassen ?
Bei deiner neuen Seekbar2 habe ich jedoch ein Problem. Schiebe ich deine Seekbar2 nach rechts und drücke anschließend den Button "Monat2", so wird die Seekbar2 sehr breit und kann rechts am Schiebepunkt nicht angefasst werden. Dies geht nur wesentlich weiter links und liegt nicht mehr unter dem Finger, der verschiebt.
 

strupp01

Active Member
Licensed User
Longtime User
Hallo Alexander,
danke für deine Antwort. Habe das Programm ausprobiert und bis auf eine Kleinigkeit funktioniert es, so wie ich will.
Ich habe bei 'Private Sub InitializeSeekBar' den Befehl 'B4XSeekBar1.mBase.Width = B4XSeekBar_Panel.Width - 5.6%x' um die -5.6%x erweitert, da sonst die SeekBar zu breit geworden währe. Ansonsten funktioniert es jetzt super.
 

klaus

Expert
Licensed User
Longtime User
Ich wollte den gleichen Vorschlag machen, die Dimensionen im Designer anpassen.

Das Problem in der B4XSeekBar2 ist genau das was ich zeigen wollte.
Wenn Du im code B4XSeekBar2.mBase.Width änderst funktioniert es nicht richtig weil die neue Breite nicht richtig behandelt wird.
Ich habe eine Bugreport geschrieben.
 

klaus

Expert
Licensed User
Longtime User
Mit dem geänderten B4XSeekbar Code funktioniert es wie Du es möchtest.
Trotzdem bleibt der Vorschlag Alles im Designer zu machen die beste Lösung.
Wollen hoffen dass Erel die original B4XSeekbar anpasst.
 

Attachments

  • Test_Seekbar_2.zip
    11.8 KB · Views: 55

strupp01

Active Member
Licensed User
Longtime User
Danke Klaus für deine Mühe, bezüglich des B4XSeekbar Code. Werde auch das mal genau Testen.
 
Top