Heyho,
Ich würde gerne das Spingadget benutzen, benötige aber eine Eingabemöglichkeit fuer reelle Zahlen. Das Spingadget kann standardmäßig aber nur mit natürlichen Zahlen umgehen.
Das Programm "Labview" kann allerdings mit reellen Zahlen im Spingadget umgehen (wobei das vllt ne Eigenkreation ist).
Kann man sowas über WinAPI lösen oder muss ich mir da was selber zusammenbasteln?
Gruß,
Chimorin
Spingadget mit reellen Zahlen
Re: Spingadget mit reellen Zahlen
Nun ja, das Spin-Gadget von PB nutzt das Gadget von Windows, welches 16-Bit also 65536 Zustände haben kann.
Wie du nun die Zustände verteilst bleibt dir ja überlassen.
Die 1:1 Umrechung in Integer-Zahlen ist ja nur eine Möglichkeit.
Genauso kannst du einfach Floatzahlen in das Gadget schreiben oder Strings.
Hier ein Beispiel:
Wie du nun die Zustände verteilst bleibt dir ja überlassen.
Die 1:1 Umrechung in Integer-Zahlen ist ja nur eine Möglichkeit.
Genauso kannst du einfach Floatzahlen in das Gadget schreiben oder Strings.
Hier ein Beispiel:
Code: Alles auswählen
OpenWindow(0, 200, 200, 400, 300, "")
SpinGadget(0, 10, 10, 100, 20, 0, $FFFF)
SetGadgetText(0, "3.14")
SetGadgetState(0, 314)
Repeat
Select WaitWindowEvent()
Case #PB_Event_Gadget
Select EventGadget()
Case 0
Select EventType()
Case #PB_EventType_Change
SetGadgetState(0, ValF(GetGadgetText(0))*100)
Case 1, -1
SetGadgetText(0, StrF(GetGadgetState(0)/100.0, 2))
EndSelect
EndSelect
Case #PB_Event_CloseWindow
End
EndSelect
ForEverPB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
- Chimorin
- Beiträge: 451
- Registriert: 30.01.2013 16:11
- Computerausstattung: MSI GTX 660 OC mit TwinFrozr III
6Gb DDR 3 RAM
AMD Phenom II X4 B55 @ 3,6GHz
Windows 7 Home Premium 64-bit
Re: Spingadget mit reellen Zahlen
Nur 16bit? Dann ist das eh nichts für mich. Danke für die Antwort, dann werde ich mir wohl oder übel was eigenes basteln müssen.
- NicTheQuick
- Ein Admin
- Beiträge: 8837
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Re: Spingadget mit reellen Zahlen
Du kannst das SpinGadget aber auch "verarschen" und einfach den eigentlichen State ignorieren und nur mit dem Text darin arbeiten.
Hier mal der abgeänderte Code. Nicht gerade vorbildlich, aber funktional:
Wichtig ist unter anderen, dass man immer wieder 'SetGadgetState(0, 1)' nutzt um den State auf 1 zu setzen. Sonst würde man nämlich nach einem Klick auf den Pfeil nach unten nicht mehr weiter kommen, weil der State dann 0 ist und nicht mehr tiefer geht.
Hier mal der abgeänderte Code. Nicht gerade vorbildlich, aber funktional:
Code: Alles auswählen
OpenWindow(0, 220, 200, 400, 300, "")
SpinGadget(0, 10, 10, 200, 24, 0, 2)
SetGadgetText(0, "3.14")
SetGadgetState(0, 1)
Repeat
Select WaitWindowEvent()
Case #PB_Event_Gadget
Select EventGadget()
Case 0
Select EventType()
Case #PB_EventType_Change
SetGadgetState(0, ValF(GetGadgetText(0))*100)
Case #PB_EventType_Up
SetGadgetText(0, StrD(ValD(GetGadgetText(0)) + 0.01))
SetGadgetState(0, 1)
Case #PB_EventType_Down
SetGadgetText(0, StrD(ValD(GetGadgetText(0)) - 0.01))
SetGadgetState(0, 1)
Case #PB_EventType_LostFocus
SetGadgetText(0, StrD(ValD(GetGadgetText(0))))
EndSelect
EndSelect
Case #PB_Event_CloseWindow
End
EndSelect
ForEver - Chimorin
- Beiträge: 451
- Registriert: 30.01.2013 16:11
- Computerausstattung: MSI GTX 660 OC mit TwinFrozr III
6Gb DDR 3 RAM
AMD Phenom II X4 B55 @ 3,6GHz
Windows 7 Home Premium 64-bit
Re: Spingadget mit reellen Zahlen
Auch eine gute Methode, danke für die Hilfe 
Re: Spingadget mit reellen Zahlen
Hallo!
Wie verträgt sich
Unterstützt das SpinGadget neuerdings den EventType "LostFocus"?
Wie verträgt sich
mitNicTheQuick hat geschrieben:......Code: Alles auswählen
... Case #PB_EventType_LostFocus SetGadgetText(0, StrD(ValD(GetGadgetText(0)))) ...
?PureBasic Hilfe hat geschrieben:Die folgenden Ereignisse werden durch EventType() unterstützt:
#PB_EventType_Change: Der Text im Eingabebereich wurde durch den Anwender geändert.
#PB_EventType_Up : Die 'Nach oben'-Taste wurde gedrückt.
#PB_EventType_Down : Die 'Nach unten'-Taste wurde gedrückt.
Unterstützt das SpinGadget neuerdings den EventType "LostFocus"?

- Chimorin
- Beiträge: 451
- Registriert: 30.01.2013 16:11
- Computerausstattung: MSI GTX 660 OC mit TwinFrozr III
6Gb DDR 3 RAM
AMD Phenom II X4 B55 @ 3,6GHz
Windows 7 Home Premium 64-bit
Re: Spingadget mit reellen Zahlen
Das gibt es nicht und wird auch nicht benötigt.