Inputrequester bei einem Screen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Inputrequester bei einem Screen

Beitrag von zigapeda »

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 <)
Benutzeravatar
125
Beiträge: 1322
Registriert: 19.09.2004 16:52
Wohnort: Neu Wulmstorf (Hamburg)
Kontaktdaten:

Beitrag von 125 »

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 :D ):

http://forums.purebasic.com/german/view ... b&start=10
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag von zigapeda »

Gibt es auch die möglichkeit ein art Testfeld zu erstellen?
kluger Mann + kluge Frau = Romanze | dummer Mann + dumme Frau = Schwangerschaft
kluger Mann + dumme Frau = Affäre | dummer Mann + kluge Frau = Shopping <)
Benutzeravatar
125
Beiträge: 1322
Registriert: 19.09.2004 16:52
Wohnort: Neu Wulmstorf (Hamburg)
Kontaktdaten:

Beitrag von 125 »

wie meinst das`?
Leo
Beiträge: 420
Registriert: 26.10.2004 18:26

Beitrag von Leo »

Er meint sicher Textfeld^^

Ich hab dazu mal vor längerer Zeit ein paar kleine Proceduren programmiert. Wenn du willst kann ich sie ja hier mal posten :)
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag von zigapeda »

Ups hab mich verschrieben, natürlich hätte das Textfeld heißen sollen. Ja klar kannst du sie mir Posten. Wäre dir dankbar.
kluger Mann + kluge Frau = Romanze | dummer Mann + dumme Frau = Schwangerschaft
kluger Mann + dumme Frau = Affäre | dummer Mann + kluge Frau = Shopping <)
Leo
Beiträge: 420
Registriert: 26.10.2004 18:26

Beitrag von Leo »

Irgendwie finde ich sie nich mehr :?
Warte mal kurz ^^
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag von zigapeda »

Wäre dir dankbar wenn du noch was findest brauche es ziemlich dringend sonst kann ich meine ganze idee wegschmeißen :D 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 <)
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Re: Inputrequester bei einem Screen

Beitrag von Danilo »

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?
Für Screens gibt es bei PB/Windows die Funktion KeyboardInkey().

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
Gestalten kannst Du das drumherum wie Du möchtest.
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
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag von zigapeda »

Sieht gut aus das problem ist nur das ich bei mir nix eingeben kann. Kannst du den code nochmal überprüfen? thx schon mal im voraus
kluger Mann + kluge Frau = Romanze | dummer Mann + dumme Frau = Schwangerschaft
kluger Mann + dumme Frau = Affäre | dummer Mann + kluge Frau = Shopping <)
Antworten