ich denke so müsste es gehen....
Code: Alles auswählen
Declare SetImage(iMenu, iID, ico)
Enumeration
#GUI
#Button_1
#Button_2
#Button_3
#Button_4
#Button_5
#ButtonImageGadget_1
#ButtonImageGadget_2
#EditorGadget_1
EndEnumeration
CreateImage(0,210,30)
StartDrawing(ImageOutput(0))
For x = 0 To 20
For y = 0 To 29
Plot(x,y, RGB(x,y,x*y))
Next
Next
DrawText(32,6,"Einstellungen und Extras")
StopDrawing()
CreateImage(1,110,30)
StartDrawing(ImageOutput(1))
For x = 0 To 20
For y = 0 To 29
Plot(x,y, RGB(x,y,x*y))
Next
Next
DrawText(36,6,"Zubehör")
StopDrawing()
OpenWindow(#GUI, 0, 0, 810, 320, "Hilfsprogramme Receiver",#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_SizeGadget)
SetWindowColor(#GUI,$615710)
ButtonGadget(#Button_1, 10,10, 380, 60, "Programm1", #PB_Button_MultiLine)
ButtonGadget(#Button_2, 10,80, 380, 60, "Programm2", #PB_Button_MultiLine)
ButtonGadget(#Button_3, 10,150, 380, 60, "Programm3", #PB_Button_MultiLine)
ButtonGadget(#Button_4, 10,220, 380, 60, "Programm4", #PB_Button_MultiLine)
ButtonGadget(#Button_5, 10,390, 380, 60, "Programm5", #PB_Button_MultiLine)
EditorGadget(#EditorGadget_1, 400, 10, 400, 270)
ContainerGadget(0,0,270,400,30,#PB_Container_Single)
#backcolor = $7F8611
ButtonImageGadget(#ButtonImageGadget_1,2,0,220,30,ImageID(0))
ButtonImageGadget(#ButtonImageGadget_2,220,0,110,30,ImageID(1))
CloseGadgetList()
hMenu = CreatePopupMenu(0)
MenuItem(0, "Test1")
MenuItem(1, "Test2")
sMenu = OpenSubMenu("Extras")
MenuItem(2, "Test3")
MenuItem(3, "Test4")
MenuItem(4, "Test5")
MenuItem(5, "Test6")
SetImage(hMenu, 0, 18)
SetImage(hMenu, 1, 130)
SetImage(hMenu, 2, 194)
SetImage(sMenu, 0, 18)
SetImage(sMenu, 1, 111)
SetImage(sMenu, 2, 241)
SetImage(sMenu, 3, 32)
hMenu = CreatePopupMenu(1)
MenuItem(0, "test7")
MenuItem(1, "test8")
sMenu = OpenSubMenu("Einstellungen")
MenuItem(2, "test9")
MenuItem(3, "test10")
MenuItem(4, "test11")
MenuItem(5, "test12")
SetImage(hMenu, 0, 18)
SetImage(hMenu, 1, 130)
SetImage(hMenu, 2, 194)
SetImage(sMenu, 0, 18)
SetImage(sMenu, 1, 111)
SetImage(sMenu, 2, 241)
SetImage(sMenu, 3, 32)
Global Programm
Global Ausgabe$ = ""
Global Ausgabe_Fehlercode$ = ""
Repeat
Select WaitWindowEvent(10) ;damit das Editogadget aktualisiert wird
Case #PB_Event_SizeWindow
ResizeGadget(0,-2,WindowHeight(0)- 32,WindowWidth(0)+4,32)
Case #PB_Event_Menu
Select EventMenu()
Case 0 ; Menüeintrag: "Test1"
ClearGadgetItems(#EditorGadget_1)
Programm = RunProgram("C:\Test.cmd","", "C:\", #PB_Program_Open | #PB_Program_Read | #PB_Program_Write| #PB_Program_Hide | #PB_Program_Error)
Case 1 ; Menüeintrag: "Test2"
; ...
Case 2 ; Menüeintrag: "Test3"
; ...
Case 3 ; Menüeintrag: "Test4"
; ...
EndSelect
Case #PB_Event_Gadget
Select EventGadget()
Case #ButtonImageGadget_1
DisplayPopupMenu(0, WindowID(0),WindowX(0)+GadgetX(0)+12, WindowY(0)+WindowHeight(0) - 120)
Case #ButtonImageGadget_2
DisplayPopupMenu(1, WindowID(0),WindowX(0)+GadgetX(0)+230, WindowY(0)+WindowHeight(0) - 120)
Case #Button_1
ClearGadgetItems(#EditorGadget_1)
Programm = RunProgram("C:\Test.cmd","", "C:\", #PB_Program_Open | #PB_Program_Read | #PB_Program_Write| #PB_Program_Hide | #PB_Program_Error)
Case #Button_2
ClearGadgetItems(#EditorGadget_1)
Programm = RunProgram("C:\Test2.cmd","", "C:\", #PB_Program_Open | #PB_Program_Read | #PB_Program_Write| #PB_Program_Hide | #PB_Program_Error)
EndSelect
Case #PB_Event_CloseWindow
Quit = 1
EndSelect
If IsProgram(Programm)
If ProgramRunning(Programm)
DisableGadget(#Button_1, #True)
DisableGadget(#Button_2, #True)
DisableGadget(#Button_3, #True)
DisableGadget(#Button_4, #True)
DisableGadget(#Button_5, #True)
If AvailableProgramOutput(Programm)
Ausgabe$ = ReadProgramString(Programm)
Ausgabe_Fehlercode$ = ReadProgramError(Programm)
AddGadgetItem(#EditorGadget_1, -1, Ausgabe$) ; Ergebnis in EditorGadget darstellen
EndIf
Else
DisableGadget(#Button_1, #False)
DisableGadget(#Button_2, #False)
DisableGadget(#Button_3, #False)
DisableGadget(#Button_4, #False)
DisableGadget(#Button_5, #False)
AddGadgetItem(#EditorGadget_1, -1, "-----------------------------------------------------")
;ggf. eine Fehlermeldung ausgeben, sofern es eine gab
If Ausgabe_Fehlercode$ <> ""
AddGadgetItem(#EditorGadget_1, -1, "Fehlermeldungen: " + Ausgabe_Fehlercode$)
EndIf
;Exitcode ausgeben
AddGadgetItem(#EditorGadget_1, -1, "Exitcode: " + Str(ProgramExitCode(Programm)))
Programm = 0
EndIf
EndIf
Until Quit = 1
Procedure SetImage(iMenu, iID, ico)
ExtractIconEx_("shell32.dll", ico, 0, @iIcon, 1)
im=CreateImage(#PB_Any, 32, 32)
StartDrawing(ImageOutput(im))
Box(0, 0, 32, 32, GetSysColor_(#COLOR_MENU))
DrawImage(iIcon, 0, 0, 32, 32)
StopDrawing()
SetMenuItemBitmaps_(iMenu,iID,#MF_BYPOSITION,ImageID(im),0)
DestroyIcon_(iIcon)
EndProcedure