Window Fehler

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Milchshake
Beiträge: 166
Registriert: 30.01.2006 17:47
Wohnort: Zwischen dem Sessel und dem Computer

Window Fehler

Beitrag von Milchshake »

Hi,
also ich habe ein Problem, dass die meisten von euch wahrscheinlich lösen können.
Also hier der Code:

Code: Alles auswählen

InitSprite()
InitSound()
InitKeyboard()
InitMouse()

OpenWindow(0,0,0,800,500,"Level Editor",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
 OpenWindowedScreen(WindowID(0),300,0,500,500,0,0,0)
  If CreateGadgetList(WindowID(0))
    ButtonGadget(0,0,0,0,0,"")
    ButtonGadget(1,0,0,50,20,"New")
    ButtonGadget(2,0,22,50,20,"Open")
    ButtonGadget(3,0,44,50,20,"Save")
    ButtonGadget(4,260,0,20,20,">")
    ButtonGadget(5,280,0,20,20,">>")
    ButtonGadget(6,240,0,20,20,"<")
    ButtonGadget(7,220,0,20,20,"<<")
    TextGadget(8,0, 130,250, 220, "PosX:"+Str(PosX), #PB_Text_Center|#PB_Text_Border)
  EndIf

Repeat
ExamineKeyboard()

Event = WindowEvent()

Select EventGadget() ; Welches Gadget hat das Ereignis ausgelöst?
       
    Case 4
     
     PosX + 50
     SetGadgetText(8,"PosX:"+Str(PosX))
      EndSelect


StartDrawing(ScreenOutput())
  For abcdefg = 0 To 500 Step 50
 Line(0,abcdefg,500,0,#White)
  Next 
  For bcdefg = 0 To 500 Step 50
 Line(bcdefg,0,0,500,#White)
  Next 
StopDrawing()
Mein Problem ist, dass wenn ich auf das > drücke, sollte eig. PosX + 50 rechnen. Aber das macht das Programm nicht nur einmal sondern sehrsehr oft.
Wie kann ich diesen kleinen Denkfehler beheben?
Danke schon im Vorraus
Milchshake
Hab jetzt PB 4.02
Muhahaha!!!!
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

sei mal so nett und poste den KOMPLETTEN code...
wenn du das ende abschneidest, kann man den nicht testen....

zum Hauptproblem:
du solltest nur dann nach EventGadget entscheiden,
wenn du vorher geprüft hast,
ob Event auch ein #PB_Event_Gadget ist.

PS:
Kiffi hat geschrieben:...und einen aussagekräftigeren Betreff wählen.
ja, bitte drauf achten.
Zuletzt geändert von Kaeru Gaman am 12.03.2008 16:07, insgesamt 3-mal geändert.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Window Fehler

Beitrag von Kiffi »

http://www.purebasic.fr/german/viewtopic.php?t=15914

Grüße ... Kiffi

P.S.: Beim nächsten Mal bitte einen funktionierenden Code posten und einen
aussagekräftigeren Betreff wählen.
a²+b²=mc²
Benutzeravatar
Milchshake
Beiträge: 166
Registriert: 30.01.2006 17:47
Wohnort: Zwischen dem Sessel und dem Computer

Beitrag von Milchshake »

Entschuldigung :oops:

Ok, hier noch mal der komplette Code:

Code: Alles auswählen

InitSprite()
InitSound()
InitKeyboard()
InitMouse()

OpenWindow(0,0,0,800,500,"Level Editor",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
 OpenWindowedScreen(WindowID(0),300,0,500,500,0,0,0)
  If CreateGadgetList(WindowID(0))
    ButtonGadget(0,0,0,0,0,"")
    ButtonGadget(1,0,0,50,20,"New")
    ButtonGadget(2,0,22,50,20,"Open")
    ButtonGadget(3,0,44,50,20,"Save")
    ButtonGadget(4,260,0,20,20,">")
    ButtonGadget(5,280,0,20,20,">>")
    ButtonGadget(6,240,0,20,20,"<")
    ButtonGadget(7,220,0,20,20,"<<")
    TextGadget(8,0, 130,250, 220, "PosX:"+Str(PosX), #PB_Text_Center|#PB_Text_Border)
  EndIf

Repeat
ExamineKeyboard()

Event = WindowEvent()

Select EventGadget() ; Welches Gadget hat das Ereignis ausgelöst?
       
    Case 4
     
     PosX + 50
     SetGadgetText(8,"PosX:"+Str(PosX))
      EndSelect


StartDrawing(ScreenOutput())
  For abcdefg = 0 To 500 Step 50
 Line(0,abcdefg,500,0,#White)
  Next 
  For bcdefg = 0 To 500 Step 50
 Line(bcdefg,0,0,500,#White)
  Next 
StopDrawing()


Until Event = #PB_Event_CloseWindow Or KeyboardPushed(#PB_Key_Escape)
Das Problem ist, dass wenn man den > Knopf drückt, PosX sich die ganze Zeit erhöht. Eigentlich soll es sich nur um 50 erhöhen. Und das auch nur einmal.

Meine Frage jetzt:
Wie mache ich das, dass wenn man den > Knopf drückt nur einmal PosX steigt?

lg Milchshake
Hab jetzt PB 4.02
Muhahaha!!!!
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

hallo, bitte auch den rest lesen! :evil:
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

@Milchshake: meinen Link oben kannst Du ignorieren. Ich habe beim
mal-eben-über-den-Code-linsen mich zu früh auf das ExamineKeyboard()
gestürzt.

Die Lösung hat Kaeru Gaman schon oben gepostet

Grüße ... Kiffi
a²+b²=mc²
Antworten