[gelöst]Problem Get/SetActiveGadget(), GadgetID() und Select

Fragen und Bugreports zur PureBasic 4.0-Beta.
Benutzeravatar
scholly
Beiträge: 793
Registriert: 04.11.2005 21:30
Wohnort: Düsseldorf

[gelöst]Problem Get/SetActiveGadget(), GadgetID() und Select

Beitrag von scholly »

moin, moin...
Den aus http://forums.purebasic.com/german/viewtopic.php?t=6705 gewonnenen Code (der unter3.94 läuft) habe ich versucht nach 4.00 zu portieren, aber irgendwas mache ich falsch oder ich hab nen Bug gefunden.
Was ist hier drin falsch ?

Code: Alles auswählen

If  OpenWindow(4,10,10,545,210, #PB_Window_SystemMenu |#PB_Window_ScreenCentered,"return-test")
    Debug "test-Fenster:         OK"
    If CreateGadgetList(WindowID(4))

      TextGadget      (401,  5,006, 50, 20, g_t_titel$)          
        StringGadget  (402, 55,003,330, 24, "")                 
        ButtonGadget  (403,386,003, 24, 26, "?")                
      TextGadget      (404,415,006, 60, 20, g_t_quelle$)        
        ComboBoxGadget(405,480,003, 60,100)                     
 
      Frame3DGadget   (429,  1,180,543,  2,"",#PB_Frame3D_Flat) 

      ButtonGadget    (430,  5,185,200,20,"Daten übernehmen")
      ButtonGadget    (431,440,185,100,20,"abbrechen")

      SetActiveGadget(402)
    Else
      MessageRequester("Bad news:","Gadgetlist 4 tut nich",#PB_MessageRequester_Ok)    
    EndIf
    satzfertig = 0
    AddKeyboardShortcut(4,#PB_Shortcut_Return,941)
    AddKeyboardShortcut(4,#PB_Shortcut_Left,942)
    AddKeyboardShortcut(4,#PB_Shortcut_Right,943)
    Repeat
      EventID = WaitWindowEvent()
      If      EventID = #PB_Event_Menu
        Select EventMenu()
          Case 942
            Debug "Cursor LEFT gedrückt"
            Select GetActiveGadget()
              Case GadgetID(430)
                Debug "gadget war -übernehmen-"
                SetActiveGadget(431)
                Debug "-abbrechen- sollte aktiviert sein" 
              Case GadgetID(431)
                Debug "gadget war -abbrechen-"
                SetActiveGadget(430)
                Debug "-übernehmen- sollte aktiviert sein"
            EndSelect
          Case 943
            Debug "Cursor RIGHT gedrückt" 
            Select GetActiveGadget()
              Case GadgetID(430)
                Debug "gadget war -übernehmen-"
                SetActiveGadget(431)
                Debug "-abbrechen- sollte aktiviert sein"
              Case GadgetID(431)
                Debug "gadget war -abbrechen-"
                SetActiveGadget(430)
                Debug "-übernehmen- sollte aktiviert sein"
            EndSelect
          Case 941
          Debug"RETURN oder ENTER gedrückt"
          Select GetActiveGadget() 
            Case GadgetID(402)  ;manuelle Bearbeitung "titel"
              Debug "inside 402"
              SetActiveGadget(405);combo für "quelle" fokussieren
              Debug "nun sollte es combo sein"
            Case GadgetID(403)  ;Button, um Titel aus Filenamen zu holen)
              Debug "Button aktiv"
              SetActiveGadget(405)
              Debug "nun sollte es combo sein"
            Case GadgetID(405)
              Debug "combo aktiv"
              SetActiveGadget(430)
              Debug "nun sollte -übernehemen- Focus haben"              
            Case GadgetID(431)
              CloseWindow(4)
              End
            Case GadgetID(430)
              CloseWindow(4)            
              End
          EndSelect
        EndSelect
      ElseIf EventID = #PB_Event_Gadget
        If      EventGadget() = 402
        ElseIf EventGadget() = 430  ;übernehmen
                CloseWindow(4)     
                End         
        ElseIf EventGadget() = 431  ;abbrechen
                CloseWindow(4)
                End
        EndIf;EventGadgetID    
      EndIf; EventID
      
    Until satzfertig = 1
Else
  MessageRequester("Bad news:","Datensatzfenster geht nich auf",#PB_MessageRequester_Ok)
  End    
EndIf
Das müßte doch eigentlich gehen, oder seh ich wieder nur den Wald vor lauter Bäumen nich ?
ratlos...
scholly
Zuletzt geändert von scholly am 21.04.2008 23:47, insgesamt 1-mal geändert.
Ich bin blutiger PB-Anfänger.
seit 17.12.08: PB 4.3 unter XP Home(SP3)
Benutzeravatar
hardfalcon
Beiträge: 3447
Registriert: 29.08.2004 20:46

Beitrag von hardfalcon »

Code: Alles auswählen

Select GetActiveGadget()
  Case GadgetID(430)
Die Dinger hast du in deinem ganzen Code falsch. GetActiveGadget() gibt die GadgetNummer zurück, nicht die GadgetID... ;)

(Mit GadgetNummer meine ich den ersten PArameter, den du bei der Erstellung eines Gadgets angeben musst, GadgetID ist irgendeine "lange" Speicheraddresse oder sowas in der Art...)
Benutzeravatar
scholly
Beiträge: 793
Registriert: 04.11.2005 21:30
Wohnort: Düsseldorf

Beitrag von scholly »

hardfalcon hat geschrieben: GetActiveGadget() gibt die GadgetNummer zurück, nicht die GadgetID... ;)
Argllll....
Das Übliche: scholly und Doku, 3 Welten begegnen sich. :(
Hätte ich das so aus dem Changelog so rauslesen müssen ?

Achja: geändert... tut wie gewollt.
Schankedön...
scholly
Ich bin blutiger PB-Anfänger.
seit 17.12.08: PB 4.3 unter XP Home(SP3)
Gesperrt