Code: Alles auswählen
    Case #PB_Event_Gadget
      Select EventWindowCode: Alles auswählen
    Case #PB_Event_Gadget
      Select EventWindowIn Ergänzung zu den Antworten die schon gegeben wurden ist hier ein fertiges Beispiel für ein modales Fenster.alDo hat geschrieben:Mein Ziel wäre es nun das kleine Auswahlfenster sticky zu machen und so den Zugriff auf das Grosse zu unterbinden
Das deutet auf Probleme mit deiner Stringverwaltung hin.alDo hat geschrieben:dass der String x< auf Probleme mit der Speicherverwaltung hinweist?
Code: Alles auswählen
createSelectWindow()
StartTime = ElapsedMilliseconds()
Repeat                                                         ; eventloop
  Event = WaitWindowEvent(10)
  EventWindow = EventWindow()
  EventGadget = EventGadget()
  Debug Event
  Select Event
    
    Case #Null                                                 ; timeout
      
      If WindowMain
        Result = AvailableSerialPortInput(SerPort)
        SetGadgetText(#CAN_MESSAGERECBYTESString,Str(Result))  ; number of received bytes
        If Result > 7                                          ; filtering garbage
          receiveCANMessage()
        EndIf
      Else
        For n=2 To 100
          If ReadFile(0,"COM"+Str(n)+":")                ; try to read the comport n
            AddGadgetItem(#COMBO_BOX,-1,"COM"+Str(n))    ; add available COM to combobox
            CloseFile(0)                                 ; close comport
          EndIf
        Next
        SetGadgetState(#COMBO_BOX,0)
      EndIf
      
    Case #PB_Event_Gadget
      Select EventWindow
        
        Case #WINDOW_MAIN
          handleButtons(EventGadget)
        
        Case #WINDOW_SELECT
          If EventGadget = #SELECTButton
            COMPORT$ = GetGadgetText(#COMBO_BOX)
            CloseWindow(#WINDOW_SELECT)
            initCAN(COMPORT$)
            createMainWindow()
            WindowMain   = #True
          EndIf
          
      EndSelect
      
    Case #PB_Event_CloseWindow
      If EventWindow = #WINDOW_MAIN
        closeCAN(SendBuffer())
        CloseSerialPort(SerPort)
      EndIf
      EXIT = 1
      
  EndSelect
  
Until EXIT
DisableExplicit
End