Code: Alles auswählen
Case #PB_Event_Gadget
Select EventWindow
Code: Alles auswählen
Case #PB_Event_Gadget
Select EventWindow
In 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