Code Problem

Für allgemeine Fragen zur Programmierung mit PureBasic.
JanFredi
Beiträge: 44
Registriert: 25.02.2005 19:49
Wohnort: Dortmund
Kontaktdaten:

Code Problem

Beitrag von JanFredi »

Hi Leute
Wenn man auf eine der durch diesen Code aufgerufene Butten klickt entsteht nur der Fehler,
das sich das dadurch aufgerufene MessageRequester() mehrmals manchmal sogar unendlich oft immer wider wiederholt.
Was mach ich falsch?
Ich bitte um Hilfe.

Code: Alles auswählen

Enumeration
#Window_0
#Editor
#New
#Open
#Save
#Delet
EndEnumeration
mmessage.w=0
If OpenWindow(#Window_0,0,0,500,350, #PB_Window_ScreenCentered  ,"Editor")
If CreateToolBar(0, WindowID())
ToolBarStandardButton(#New, #PB_ToolBarIcon_New):ToolBarToolTip(#New,"Neu")
ToolBarStandardButton(#Open, #PB_ToolBarIcon_Open):ToolBarToolTip(#Open,"Öffnen")
ToolBarStandardButton(#Save, #PB_ToolBarIcon_Save):ToolBarToolTip(#Save,"Speichern")
ToolBarStandardButton(#Delet, #PB_ToolBarIcon_Delete):ToolBarToolTip(#Delet,"Alles löschen")
EndIf
If CreateGadgetList(WindowID())
EditorGadget(#Editor,0,25,500,250)
EndIf
Repeat
EventID= WaitWindowEvent()
If #New= EventMenuID()
message=MessageRequester("Neu","Möchten sie eine Neue Datei?",#PB_MessageRequester_YesNo)
If message=6
ClearGadgetItemList(#Editor)
EndIf
EndIf
If #Open= EventMenuID()
OpenFileRequester("Was möchten sie öffnen?","C:\","*.txt",0)
EndIf
If #Save= EventMenuID()
MessageRequester("Speichern","Ihre Datei wirt gespeichert.")
EndIf
If #Delet= EventMenuID()
message=MessageRequester("Möchten sie alles löschen?","",#PB_MessageRequester_YesNo)
If message=6
ClearGadgetItemList(#Editor)
EndIf
EndIf
If EventID = #PB_Event_Gadget
EndIf
Until Event=#PB_EventCloseWindow
EndIf
End
_________________
Ich benutze PureBasic 3.90 Demo.
Und zum schnellen tippen JaPBe.
Benutzeravatar
125
Beiträge: 1322
Registriert: 19.09.2004 16:52
Wohnort: Neu Wulmstorf (Hamburg)
Kontaktdaten:

Beitrag von 125 »

Code: Alles auswählen

Enumeration 
#Window_0 
#Editor 
#New 
#Open 
#Save 
#Delet 
EndEnumeration 
mmessage.w=0 
If OpenWindow(#Window_0,0,0,500,350, #PB_Window_ScreenCentered ,"Editor") 
If CreateToolBar(0, WindowID()) 
ToolBarStandardButton(#New, #PB_ToolBarIcon_New):ToolBarToolTip(#New,"Neu") 
ToolBarStandardButton(#Open, #PB_ToolBarIcon_Open):ToolBarToolTip(#Open,"Öffnen") 
ToolBarStandardButton(#Save, #PB_ToolBarIcon_Save):ToolBarToolTip(#Save,"Speichern") 
ToolBarStandardButton(#Delet, #PB_ToolBarIcon_Delete):ToolBarToolTip(#Delet,"Alles löschen") 
EndIf 
If CreateGadgetList(WindowID()) 
EditorGadget(#Editor,0,25,500,250) 
EndIf 
Repeat 


Select WaitWindowEvent()
Case #PB_Event_Menu

Select EventMenuID()

Case #New
message=MessageRequester("Neu","Möchten sie eine Neue Datei?",#PB_MessageRequester_YesNo) 
If message=6 
ClearGadgetItemList(#Editor) 
EndIf 

Case #open
OpenFileRequester("Was möchten sie öffnen?","C:\","*.txt",0) 

Case #Save
MessageRequester("Speichern","Ihre Datei wirt gespeichert.") 

Case #Delet
message=MessageRequester("Möchten sie alles löschen?","",#PB_MessageRequester_YesNo) 
If message=6 
ClearGadgetItemList(#Editor) 
EndIf

EndSelect 
EndSelect 

Until EventID=#PB_EventCloseWindow 
EndIf 
End
Hoffe das hilft.
Da musste ne abfrage rein obs ein: #PB_Event_Menu ist.
Habs ma in cases umgeformt das ist übersichtlicher :)
JanFredi
Beiträge: 44
Registriert: 25.02.2005 19:49
Wohnort: Dortmund
Kontaktdaten:

Beitrag von JanFredi »

Super Danke jetzt geht der Code.
:allright: :bounce: :allright:
JanFredi
Beiträge: 44
Registriert: 25.02.2005 19:49
Wohnort: Dortmund
Kontaktdaten:

Beitrag von JanFredi »

Noch ein Problem
Warum geht der Rechtsklick nicht?

Code: Alles auswählen

If OpenFile(0,"Datei.txt")
  WegDatei$=ReadString()
  CloseFile(0)
EndIf
  
Enumeration 
  #Window_0 
  #Editor 
  #New 
  #Open 
  #Save 
  #Delet 
  #LDL
  #Exit
EndEnumeration 
mmessage.w=0 
Zeile.w=0
If OpenWindow(#Window_0,0,0,500,350, #PB_Window_ScreenCentered,"Editor") 
  If CreateToolBar(0, WindowID()) 
    ToolBarStandardButton(#New, #PB_ToolBarIcon_New):ToolBarToolTip(#New,"Neu Strg+N") 
    ToolBarStandardButton(#Open, #PB_ToolBarIcon_Open):ToolBarToolTip(#Open,"Öffnen Strg+O") 
    ToolBarStandardButton(#Save, #PB_ToolBarIcon_Save):ToolBarToolTip(#Save,"Speichern Strg+S") 
    ToolBarStandardButton(#Delet, #PB_ToolBarIcon_Delete):ToolBarToolTip(#Delet,"Alles löschen Strg+L") 
    ToolBarStandardButton(#LDL, #PB_ToolBarIcon_Properties):ToolBarToolTip(#LDL,"Letzte Datei Laden") 
    ToolBarStandardButton(#Exit, #PB_ToolBarIcon_Delete):ToolBarToolTip(#Exit,"Programm beenden")
  EndIf 
  If CreateGadgetList(WindowID()) 
    EditorGadget(#Editor,0,25,500,250) 
    
  EndIf 
  If CreatePopupMenu(0)    
    MenuItem(1, "Open")    
    MenuItem(2, "Save") 
    MenuItem(3, "Save as") 
    MenuItem(4, "Quit") 
  EndIf 
  
  Repeat 
  
    AddKeyboardShortcut(0, #PB_Shortcut_Control|#PB_Shortcut_N, #New)
    AddKeyboardShortcut(0, #PB_Shortcut_Control|#PB_Shortcut_O, #Open)
    AddKeyboardShortcut(0, #PB_Shortcut_Control|#PB_Shortcut_S, #Save)
    AddKeyboardShortcut(0, #PB_Shortcut_Control|#PB_Shortcut_L, #Delet)
    Select WaitWindowEvent() 
      Case #PB_Event_Menu 
        
        Select EventMenuID() 
          
           
          Case #New          
            
            message=MessageRequester("Neu","Möchten sie eine Neue Datei?",#PB_MessageRequester_YesNo) 
            If message=6 
              ClearGadgetItemList(#Editor) 
              Weg$=""
            EndIf 
            
          Case #Open 
            Weg$=OpenFileRequester("Was möchten sie öffnen?",Satndertweg$,"*.txt",0) 
            If Weg$<>""
            OpenFile(0,Weg$)
            Repeat
              
              AddGadgetItem(#Editor,Zeile,ReadString())
             
              
              
              Zeile+1
            Until Eof(0)
            CloseFile(0)
          EndIf
        Case #Save
          Zeile=0
          If Weg$<>""
            CreateFile(0,Weg$)
            Ende=0
            Repeat
              
              
              String.s=GetGadgetItemText(#Editor,Zeile,0)
              WriteStringN(String)
              
              If GetGadgetItemText(#Editor,Zeile,0)=""
                Ende+1
              Else
                Ende=0
              EndIf
              Zeile+1
            Until Ende=10
            CloseFile(0) 
          Else
            Weg$=SaveFileRequester("Speichern","C:\","*.txt",0)
            CreateFile(0,Weg$+".txt")
            Ende=0
            Repeat
              
              
              String.s=GetGadgetItemText(#Editor,Zeile,0)
              WriteStringN(String)
              
              If GetGadgetItemText(#Editor,Zeile,0)=""
                Ende+1
              Else
                Ende=0
              EndIf
              Zeile+1
            Until Ende=10
            CloseFile(0) 
          EndIf
          
            
          Case #Delet 
            message=MessageRequester("Löschen","Möchten sie alles Löschen?",#PB_MessageRequester_YesNo) 
            If message=6 
              ClearGadgetItemList(#Editor) 
            EndIf 
         
          Case #Exit
            Exit=1
          Case #LDL
             
            If WegDatei$<>""
              If OpenFile(0,WegDatei$)
              Zeile=0
              Repeat
                
                AddGadgetItem(#Editor,Zeile,ReadString())
                
                
                
                Zeile+1
              Until Eof(0)
              CloseFile(0) 
            EndIf  
           
          EndIf
      EndSelect
    Case #PB_Event_Gadget
      
      Select EventType() 
        
        Case #PB_EventType_RightClick 
          
          DisplayPopupMenu(0,WindowID())
      EndSelect 
    Case #PB_Event_Menu 
      Select EventMenuID() 
        Case 4 ; Quit 
          Quit =1 
      EndSelect 
    EndSelect 
    
  Until Exit=1
EndIf 

CreateFile(0,"Datei.txt")
WriteString(Weg$)
CloseFile(0)
End 
Ich benutze PureBasic 3.93.
Und zum schnellen tippen JaPBe.
Benutzeravatar
125
Beiträge: 1322
Registriert: 19.09.2004 16:52
Wohnort: Neu Wulmstorf (Hamburg)
Kontaktdaten:

Beitrag von 125 »

Weil die Konstante irgendwie falsch ist.
Setz mal nen:
Debug EventType()
un d nen
Debug #PB_EventType_R...

Rein
er wird :
für die Konstante eine 1 asugeben und bei Eventtype eine andere Zahl ich weiß aber gerade net welche konstante da hin muss....,

mfg
125
celli
Beiträge: 24
Registriert: 11.01.2005 18:45

Beitrag von celli »

Code: Alles auswählen

Case #PB_Event_Gadget 
      
      Select EventType() 
        
        Case #PB_EventType_RightClick 
          
          DisplayPopupMenu(0,WindowID()) 
      EndSelect 
ändern in:

Code: Alles auswählen

Case #WM_RBUTTONUP 
          DisplayPopupMenu(0,WindowID()) 

hoffe es hilft....!?

gruss...
Benutzeravatar
125
Beiträge: 1322
Registriert: 19.09.2004 16:52
Wohnort: Neu Wulmstorf (Hamburg)
Kontaktdaten:

Beitrag von 125 »

Geht auch nicht
hab hier 3.93 neuste beta...
weil
#PB... = 1
und #WM_RBUTTONUP =517
Aber Eventtype das entsteht ist 512 ...
JanFredi
Beiträge: 44
Registriert: 25.02.2005 19:49
Wohnort: Dortmund
Kontaktdaten:

Beitrag von JanFredi »

Danke für eure Hilfe :!: :!: :!:
:allright: :allright: :allright:
Noch eine Frage, was bedeutet #WM_RBUTTONUP :?:
Es steht nicht in der Hilfe.
Ich benutze PureBasic 3.93.
Und zum schnellen tippen JaPBe.
Benutzeravatar
Hroudtwolf
Beiträge: 1416
Registriert: 30.10.2004 23:33
Kontaktdaten:

Beitrag von Hroudtwolf »

Das ist eine API-Konstante die den Event eines Rechtsklicks angibt.
Benutzeravatar
125
Beiträge: 1322
Registriert: 19.09.2004 16:52
Wohnort: Neu Wulmstorf (Hamburg)
Kontaktdaten:

Beitrag von 125 »

Das ist eine Windows-Api Konstante...
Funktioniert so aber nicht....
Jedenfalls hier....
Welche PB versionen nutzt ihr? hab hier 3.93b3
Antworten