Inputrequester bei einem Screen
Inputrequester bei einem Screen
Hi Leutz hab einen Screen und möchte das der User einen Namen eingibt. Der Inputrequester funktioniert nicht, gibt es eine Alternative?
kluger Mann + kluge Frau = Romanze | dummer Mann + dumme Frau = Schwangerschaft
kluger Mann + dumme Frau = Affäre | dummer Mann + kluge Frau = Shopping
kluger Mann + dumme Frau = Affäre | dummer Mann + kluge Frau = Shopping

guck dir mal die beiden Posts von Danilo in dem Thread an die dürften dein Prob lösen (schau dir mal die beiden Exes im Archive des ersten posts an
):
http://forums.purebasic.com/german/view ... b&start=10

http://forums.purebasic.com/german/view ... b&start=10
Wäre dir dankbar wenn du noch was findest brauche es ziemlich dringend sonst kann ich meine ganze idee wegschmeißen
ok vieleicht nicht ganz wegschmeißen aber noch mal komplet abändern.

kluger Mann + kluge Frau = Romanze | dummer Mann + dumme Frau = Schwangerschaft
kluger Mann + dumme Frau = Affäre | dummer Mann + kluge Frau = Shopping
kluger Mann + dumme Frau = Affäre | dummer Mann + kluge Frau = Shopping

Re: Inputrequester bei einem Screen
Für Screens gibt es bei PB/Windows die Funktion KeyboardInkey().zigapeda hat geschrieben:Hi Leutz hab einen Screen und möchte das der User einen Namen eingibt. Der Inputrequester funktioniert nicht, gibt es eine Alternative?
Du brauchst also nur Name$ + KeyboardInkey(), und schon kann
der User etwas eingeben.
Danach zeigst Du den eingegebenen String einfach noch an.
Um den String herum kannst Du noch selbst etwas malen, z.B.
eine Box oder ein paar Linien - oder von mir aus auch ein ganzes
Fenster.
Beispiel:
Code: Alles auswählen
;
; simple screen input example
;
; by Danilo, 2005/04/11, german forum
;
#ScreenWidth = 1024
#ScreenHeight = 768
#ScreenName = "Input Test"
Procedure.s InputProcedure(x,y)
Static Name$, LastCursorTime, ShowCursor, BackPushed
; Input holen
Name$ + KeyboardInkey()
; Backspace erlauben zum loeschen
If KeyboardPushed(#PB_Key_Back) And BackPushed=0
Name$ = Left(Name$,Len(Name$)-1)
BackPushed=ElapsedMilliseconds()
ElseIf BackPushed
If ElapsedMilliseconds() >= BackPushed+150
BackPushed=0
EndIf
EndIf
; Laenge begrenzen
len=Len(Name$)
If len>25
Name$ = Left(Name$,len-1)
EndIf
; Fenster zeichnen
If StartDrawing(ScreenOutput())
Box(x+5,y+5,300,100,$404040)
Box(x,y,300,100,$D7D628)
Box(x,y,300,22,$579FA8)
Line(x ,y,300, 0,$FFFFFF):Line(x,y , 0,100,$FFFFFF)
Line(x+300,y, 0,100,$000000):Line(x,y+100,300, 0,$000000)
Locate(x+2,y+2)
DrawingMode(1)
DrawText("Bitte Name eingeben")
Box(x+09,y+29,282,24,$000000)
Box(x+10,y+30,280,22,$FFFFFF)
Locate(x+13,y+33)
DrawText(Name$)
; cursor blinken lassen
time = ElapsedMilliseconds()
If time >= LastCursorTime+500
LastCursorTime=time
ShowCursor ! 1
EndIf
; cursor zeichnen
If ShowCursor
;Line(x+13+TextLength(Name$),y+32,0,18,$000000)
Line(x+13+TextLength(Name$),y+50,10,0,$000000)
EndIf
StopDrawing()
EndIf
If KeyboardReleased(#PB_Key_Return) And Name$
ProcedureReturn Name$
EndIf
EndProcedure
If InitSprite()=0 Or InitKeyboard()=0
MessageRequester("ERROR","Cant initialize game engine!"):End
EndIf
If OpenScreen(#ScreenWidth,#ScreenHeight,32,#ScreenName)=0
If OpenScreen(#ScreenWidth,#ScreenHeight,24,#ScreenName)=0
If OpenScreen(#ScreenWidth,#ScreenHeight,16,#ScreenName)=0
MessageRequester("ERROR","Cant open screen ("+Str(#ScreenWidth)+"x"+Str(#ScreenHeight)+")!"):End
EndIf:EndIf:EndIf
Repeat
ExamineKeyboard()
If IsScreenActive()
FlipBuffers()
ClearScreen($3A,$65,$98)
If Status = 0
Name$ = InputProcedure(#ScreenWidth/2-150,#ScreenHeight/2-50)
If Name$
Status+1
EndIf
Else
If StartDrawing(ScreenOutput())
FrontColor($FF,$FF,$FF)
DrawingMode(1)
Locate(100,100): DrawText("Ihre Eingabe:")
Locate(100,130): DrawText("Vielen Dank! Bitte drcken sie eine Taste...")
FrontColor($00,$00,$00)
Locate(200,100): DrawText(Name$)
StopDrawing()
EndIf
If KeyboardPushed(#PB_Key_All)
Quit=#TRUE
EndIf
EndIf
EndIf
Until Quit
Zuletzt geändert von Danilo am 11.04.2005 10:50, insgesamt 5-mal geändert.
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck