Seltsamer IMA

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Benutzeravatar
vonTurnundTaxis
Beiträge: 2130
Registriert: 06.10.2004 20:38
Wohnort: Bayreuth
Kontaktdaten:

Seltsamer IMA

Beitrag von vonTurnundTaxis »

Ich bin so langsam wirklich am Verzweifeln, warum dieser Code in Zeile 19 einen IMA gibt,

Code: Alles auswählen

Declare Eins() 
 Declare Zwei() 
 Declare Event_Handler() 
 
 Procedure Eins() 
     OpenWindow(1, 0, 0, 100, 100, "Hallo") 
     CreateGadgetList(WindowID(1)) 
     ButtonGadget(1, 0, 0, 100, 100, "Zwei!") 
     
     Repeat 
     
     Until Event_Handler() = #PB_Event_CloseWindow 
 EndProcedure 
 
 Procedure Zwei() 
     OpenWindow(2, 0, 0, 100, 100, "Hallo 2") 
     CreateGadgetList(WindowID(2)) 
     EditorGadget(2, 0, 0, 100, 100) 
     gtk_text_buffer_create_tag_(gtk_text_view_get_buffer_(GadgetID(2)), "bold", "weight", 800) 
     
     Repeat 
     
     Until Event_Handler() = #PB_Event_CloseWindow 
 EndProcedure 
 
 Procedure Event_Handler() 
     Event = WaitWindowEvent(20) 
     Select Event 
     Case #PB_Event_Gadget 
         Select EventGadget() 
             Case 1 
                 Zwei() 
         EndSelect 
     Default 
         ProcedureReturn Event_Handler 
     EndSelect 
 EndProcedure 
 
 Eins()
dieser aber nicht:

Code: Alles auswählen

Declare Eins() 
 Declare Zwei() 
 Declare Drei()
 Declare Event_Handler() 
 
 Procedure Eins() 
     OpenWindow(1, 0, 0, 100, 100, "Hallo") 
     CreateGadgetList(WindowID(1)) 
     ButtonGadget(1, 0, 0, 100, 100, "Zwei!") 
     
     Repeat 
     
     Until Event_Handler() = #PB_Event_CloseWindow 
 EndProcedure 
 
 Procedure Zwei() 
     OpenWindow(2, 0, 0, 100, 100, "Hallo 2") 
     CreateGadgetList(WindowID(2)) 
     EditorGadget(2, 0, 0, 100, 100) 
     Drei()
     
     Repeat 
     
     Until Event_Handler() = #PB_Event_CloseWindow 
 EndProcedure
 
 Procedure Drei()
 gtk_text_buffer_create_tag_(gtk_text_view_get_buffer_(GadgetID(2)), "bold", "weight", 800) 
 EndProcedure
 
 Procedure Event_Handler() 
     Event = WaitWindowEvent(20) 
     Select Event 
     Case #PB_Event_Gadget 
         Select EventGadget() 
             Case 1 
                 Zwei() 
         EndSelect 
     Default 
         ProcedureReturn Event_Handler 
     EndSelect 
 EndProcedure 
 
 Eins()
Nicht durch Zorn, sondern durch Lachen tötet man
ClipGrab | Pastor - jetzt mit kurzen URLs!
tmjuk
Beiträge: 380
Registriert: 30.06.2006 00:10
Wohnort: Backaryd, Schweden

Beitrag von tmjuk »

Hallo,

habe ebenfalls keine Ahnung. mysteriös.
Bei Schließen der Fenster ist auch was faul...

Gruß Torsten
PB 4.51 32 Windows Vista, 32 XP, PB 4.51 32 Ubuntu 10.10
tmjuk
Beiträge: 380
Registriert: 30.06.2006 00:10
Wohnort: Backaryd, Schweden

Beitrag von tmjuk »

Hallo,

dies hängt irgendwie mit der Prozedur Eventhandler zusammen. Da war ja sowieso was im Busch. Naja da wurde von 2 Fenstern auf die gleiche Prozedur zugegriffen. Geht das?
Ich habe das mal ein wenig geändert und dann kann man die Api-Funktion auch ohne Extraprozedur aufrufen.
Vielleicht hilft dir das?

Code: Alles auswählen

 Procedure Zwei()
     OpenWindow(2, 0, 0, 100, 100, "Hallo 2")
     CreateGadgetList(WindowID(2))
     EditorGadget(2, 0, 0, 100, 100)
     gtk_text_buffer_create_tag_(gtk_text_view_get_buffer_(GadgetID(2)), "bold", "weight", 800)
     
     
 EndProcedure
 
 
  OpenWindow(1, 0, 0, 100, 100, "Hallo")
     CreateGadgetList(WindowID(1))
     ButtonGadget(1, 0, 0, 100, 100, "Zwei!")
     quit = 0
     Repeat
        event = WaitWindowEvent(20)
        Select event
        Case #PB_Event_Gadget
            Select EventGadget()
                Case 1
                    Zwei()
            EndSelect
        EndSelect
                
     Until event = #PB_Event_CloseWindow
   
Gruß Torsten
PB 4.51 32 Windows Vista, 32 XP, PB 4.51 32 Ubuntu 10.10
freak
PureBasic Team
Beiträge: 766
Registriert: 29.08.2004 00:20
Wohnort: Stuttgart

Beitrag von freak »

Der gtk Aufruf ist einfach falsch.

Mehr info:
http://www.purebasic.fr/english/viewtopic.php?t=25482
Antworten