spingadget - stepping problem

Anfängerfragen zum Programmieren mit PureBasic.
Burstnibbler
Beiträge: 58
Registriert: 04.10.2008 12:10

Re: spingadget - stepping problem

Beitrag von Burstnibbler »

Hallo,

hier das Ganze mal mit einem Array (auf Eventtype kann hierbei verzichtet werden).

Code: Alles auswählen

EnableExplicit

#Win=0
#Spn=0

Define Loop.i
Dim Spinner.i(10)

For Loop=0 To 10
  Spinner(Loop)=(Loop+1)*5
Next

OpenWindow(#Win,0,0,140,70,"SpinGadget",#PB_Window_SystemMenu)
SpinGadget(#Spn,20,20,100,25,0,10, #PB_Spin_ReadOnly)
SetGadgetText(#Spn,Str(Spinner(GetGadgetState(#Spn))))
SetActiveGadget(#Spn)

Repeat
  Select WaitWindowEvent()
   Case #PB_Event_Gadget
    If EventGadget()=#Spn
     SetGadgetText(#Spn,Str(Spinner(GetGadgetState(#Spn))))
    EndIf
   Case #PB_Event_CloseWindow : Break
  EndSelect
ForEver

MfG,
Burstnibbler
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: spingadget - stepping problem

Beitrag von STARGÅTE »

:?

Wozu dann überhaupt das Array ?

Code: Alles auswählen

EnableExplicit

#Win=0
#Spn=0

OpenWindow(#Win,0,0,140,70,"SpinGadget",#PB_Window_SystemMenu)
SpinGadget(#Spn,20,20,100,25,0,10, #PB_Spin_ReadOnly)
SetGadgetText(#Spn,Str(GetGadgetState(#Spn)*5+5))
SetActiveGadget(#Spn)

Repeat
  Select WaitWindowEvent()
   Case #PB_Event_Gadget
    If EventGadget()=#Spn
     SetGadgetText(#Spn,Str(GetGadgetState(#Spn)*5+5))
    EndIf
   Case #PB_Event_CloseWindow : Break
  EndSelect
ForEver
PB 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
Burstnibbler
Beiträge: 58
Registriert: 04.10.2008 12:10

Re: spingadget - stepping problem

Beitrag von Burstnibbler »

STARGÅTE hat geschrieben: :? Wozu dann überhaupt das Array ?
:lol: Jo, da haste auch wieder Recht !
:allright:

Mfg,
Burstnibbler
broozar
Beiträge: 97
Registriert: 08.03.2010 15:53
Wohnort: Berlin
Kontaktdaten:

Re: spingadget - stepping problem

Beitrag von broozar »

danke für eure hilfe. genug beispielcode habe ich ja jetzt. bitte sagt mir nun auch noch, wo mein denkfehler lag.
iMac 27" quad i7 radeon 4850 8gig ram
PB 4.4 in parallelsVM @ 2 cores 3072megs ram 32megs vram win7
Burstnibbler
Beiträge: 58
Registriert: 04.10.2008 12:10

Re: spingadget - stepping problem

Beitrag von Burstnibbler »

Hallo broozar,

ich habe mir mal deinen Code genauer angeschaut und den Fehler tatsächlich gefunden :o .
Es ist die Konstante: #PB_Spin_Numeric
PB-Hilfe hat geschrieben:Das SpinGadget wird den Text automatisch mit dem aktuellen Wert des SpinGadgets updaten, womit SetGadgetText() nicht benötigt wird.
Das Problem dabei war dann, "der aktuelle Wert des SpinGadgets", welcher die ganze Berechnung durcheinander gebracht hat; und beim "Dauerfeuer" dann irgendwie vollends versagt hat.

Wenn du in deinem Code jetzt die Konstante weg lässt und die Werte "4" durch "5" ersetzt, dann funktioniert es.

MfG,
Burstnibbler
Benutzeravatar
hjbremer
Beiträge: 822
Registriert: 27.02.2006 22:30
Computerausstattung: von gestern
Wohnort: Neumünster

Re: spingadget - stepping problem

Beitrag von hjbremer »

Burstnibbler hat geschrieben: Es ist die Konstante: #PB_Spin_Numeric

Das Problem dabei war dann, "der aktuelle Wert des SpinGadgets", welcher die ganze Berechnung durcheinander gebracht hat; und beim "Dauerfeuer" dann irgendwie vollends versagt hat.
Das Spin-Gadget versagt nicht !!! !!!

Es tut genau das, was es tun soll,
würde es das nicht, so würde eine Flut von Protesten über Fred und Co hereinbrechen.

PS: in meinem Beispiel am Anfang fehlt genau dies Konstante. Darum und wegen dem einfacheren Code funktioniert der selbige.

Wenn schon Kritik, dann leise an der Hilfe von PB, die nicht genau und ausführlich genug ist.
Purebasic 5.70 x86 5.72 X 64 - Windows 10

Der Computer hat dem menschlichen Gehirn gegenüber nur einen Vorteil: Er wird benutzt
grüße hjbremer
Burstnibbler
Beiträge: 58
Registriert: 04.10.2008 12:10

Re: spingadget - stepping problem

Beitrag von Burstnibbler »

hjbremer hat geschrieben: Das Spin-Gadget versagt nicht !!! !!!
Habe ich ja auch nie behauptet !
Ich schrieb, dass durch die Verwendung dieser Konstante, der "aktuelle Gadgetwert des Spingadgets" die Berechnung durcheinander bringt und bei "Dauerfeuer" versagt. Und warum das so ist, habe ich mit dem Zitat aus der PB-Hilfe verdeutlicht - nämlich weil mit der Verwendung dieser Konstante, der Gadgettext automatisch geupdatet wird.
hjbremer hat geschrieben: Es tut genau das, was es tun soll,
Ja!
hjbremer hat geschrieben: würde es das nicht, so würde eine Flut von Protesten über Fred und Co hereinbrechen.
Also an der Flut hege ich leise Zweifel.
hjbremer hat geschrieben: PS: in meinem Beispiel am Anfang fehlt genau dies Konstante. Darum und wegen dem einfacheren Code funktioniert der selbige.
Egal ob einfacher oder verkomplizierter Code! @Broozar wollte wissen, wo denn der Fehler in seinem Code liegt, und das ist nunmal die Verwendung dieser Konstante; denn ohne sie läuft sein Code ohne Probleme.
hjbremer hat geschrieben: Wenn schon Kritik, dann leise an der Hilfe von PB, die nicht genau und ausführlich genug ist.
Laute Zustimmung !

MfG,
Burstnibbler
We´re going backwards, armed with new technology.
Going backwards, to a caveman mentality.
Antworten