Seite 1 von 2
SpinGadget editierbar machen
Verfasst: 03.06.2005 21:32
von Jake
Hallo,
kann man ein SpinGadget editierbar machen? Also so das ich nicht nur die Pfeile benutzen kann sondern auch mit dem Cursor einen Wert einstragen kann.
Ich habe schon versucht es hinzubekommen aber es geht immer nur das eine oder das andere.
Bei dem Beispiel aus der Hilfe kann man ja nur die Pfeile benutzten.
Verfasst: 03.06.2005 22:41
von Life-for-fun
Du musst einfach nur diese Zeile entfernen:
Deshalb wird es immer zurückgesetzt

Verfasst: 03.06.2005 23:02
von Jake
Das geht nicht! Wie soll ich dann die Pfeile benutzten. Es soll beides gehen so wie es in allen möglichen Anwendungen auch ist.
Wenn ich diese Zeile entferne dann ändert sich nur der Text und nicht der Status.
Verfasst: 04.06.2005 16:46
von Life-for-fun
Jap, stimmt

war gestern ein bissi müde und sollte zudem meinen PC ausmachen... Eltern

Aber macht ja nix.
Setze einfach für die Stelle oben folgendes ein:
Code: Alles auswählen
If lastState.l<>GetGadgetState(0)
SetGadgetText(0,Str(GetGadgetState(0)))
lastState.l=GetGadgetState(0)
lastText.s=GetGadgetText(0)
ElseIf lastText.s<>GetGadgetText(0)
SetGadgetState(0,Val(GetGadgetText(0)))
lastText.s=GetGadgetText(0)
lastState.l=GetGadgetState(0)
EndIf
Damit dürfte es laufen

Nun wird Status und Text geändert

Musst halt dazu zwei Variable nehmen.
Verfasst: 04.06.2005 22:54
von Jake
Warum probierst du nicht aus was du geschrieben hast bevor du es postetst. Nur drei Zeilen mehr und du hast ein Laufendes Programm und würdest sehen das es nicht geht.
Wie soll man mit deinem Code die Pfeile benutzen? Das geht so nicht. Ich habe solche Experimente schon gemacht bevor ich diese Frage hier gestellt habe.
Wenn es so einfach wäre hätte ich es selbst hinbekommen. Will dich hier nicht runtermachen aber ich glaube du bist genau so ein Anfänger wie ich es bin und ich bin auf der suche nach einer professionellen Lösung.
Ich kenne kein Programm bei dem das was ich möchte nicht geht. Nur in Purebasic geht das ohne weiteres wohl nicht.
Re: SpinGadget editierbar machen
Verfasst: 04.06.2005 23:03
von Kiffi
> kann man ein SpinGadget editierbar machen?
http://forums.purebasic.com/german/viewtopic.php?t=2909
Grüße ... Kiffi
Verfasst: 04.06.2005 23:48
von Jake
Danke Kiffi genau das habe ich gesucht. Hab das auch schon fast so gehabt aber eine Zeile hatte ich nicht drin.
Code: Alles auswählen
If OpenWindow(0,0,0,140,70,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"SpinGadget") And CreateGadgetList(WindowID(0))
SpinGadget (0,20,20,100,25,0,1000)
SetGadgetState (0,5) : SetGadgetText(0,"5") ; Anfangswert festlegen
Repeat
ev.l = WaitWindowEvent()
If ev=#PB_Event_Gadget
If EventGadgetID() = 0
If GetGadgetState(0)<>Val(GetGadgetText(0)) ; hat sich was geändert?
If EventType()=#PB_EventType_Change ; = Eingabe in Textfeld
SetGadgetState(0,Val(GetGadgetText(0)))
Else
SetGadgetText(0,Str(GetGadgetState(0)))
EndIf
EndIf
EndIf
EndIf
Until ev.l = #PB_Event_CloseWindow
EndIf
Und zwar diese hier:
Code: Alles auswählen
If GetGadgetState(0)<>Val(GetGadgetText(0)) ; hat sich was geändert?
Schon peinlich das nicht selbst gefunden zu haben, habe mir das Code-Archiv nämlich runtergeladen und auch schon darin gesucht.
Verfasst: 05.06.2005 11:24
von Life-for-fun
@ Jake:
Ich probier meine Sachen schon aus, bevor ich sie hier reinschreibe. Bei mir läuft es wenn ich es einsetze:
Code: Alles auswählen
If OpenWindow(0,0,0,140,70,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"SpinGadget") And CreateGadgetList(WindowID(0))
SpinGadget (0,20,20,100,25,0,1000)
SetGadgetState (0,5) : SetGadgetText(0,"5") ; Anfangswert festlegen
Repeat
Event = WaitWindowEvent()
If EventGadgetID() = 0
If lastState.l<>GetGadgetState(0)
SetGadgetText(0,Str(GetGadgetState(0)))
lastState.l=GetGadgetState(0)
lastText.s=GetGadgetText(0)
ElseIf lastText.s<>GetGadgetText(0)
SetGadgetState(0,Val(GetGadgetText(0)))
lastText.s=GetGadgetText(0)
lastState.l=GetGadgetState(0)
EndIf
WindowEvent() ; absolut notwendig, um Endlos-Schleifen zu vermeiden
EndIf
Until Event = #PB_Event_CloseWindow
EndIf
Erfüllt denselben Zweck wie der Code von Kiffi, auch wenn der professioneller ist

Verfasst: 14.10.2005 07:16
von JoRo
Nur für alle, die den Quatsch hier außer mir auch noch lesen:
Standardmäßig unterstützt ein SpinGadget nicht den Eventtype Change.
Es kann ja sein, dass es dafür ein Lib gibt, weiß ich nicht, aber mit der normalen Version von PB funktioniert das Nicht!!!
Lösung:
Spingadget so weit verkleinern in der x-Dimension, dass nur die Pfiele sichtbar sind und ein StringGadget daneben setzen. Das kann dann wie in den Beispielen oben über das SpinGadget gesteuert werden.
Johannes
Verfasst: 14.10.2005 07:50
von ts-soft
JoRo hat geschrieben:Nur für alle, die den Quatsch hier außer mir auch noch lesen:
Standardmäßig unterstützt ein SpinGadget nicht den Eventtype Change.
Es kann ja sein, dass es dafür ein Lib gibt, weiß ich nicht, aber mit der normalen Version von PB funktioniert das Nicht!!!
Bei mir funktioniert es

, vielleicht ist mein Purebasic ja kaputt
