Also Menudefinition hat funktioniert.
Ich bin da bei eine Toolbox zu erstellen, die einige Datenbankwerkzeuge enthält.
Ich möchte sozusagen eine Shell haben, von der ich die externen Programme abrufen kann. Möchte aber nicht , das die Programme für sich alleine funktionieren.
Wie kann ich einem Menupunkt ein externes Programm zuordnen oder auch Procedur.
Als Beispiel:
Ich starte ein Oberfläche, in der eine Datenbankabfrage erstellt ist.
Jetzt möchte ich einen Menupunkt haben der die Datenbank wechseln kann. Der Menupunkt exisitiert schon. Die Prozedur zum Datenbankwechsel auch .Der neue Pfad wird in eine INI-Datei weggeschrieben.
Ein zweite Procedur, die diese INI-Datrei ausliest und somit die Datenbank initilisieren kann.
Wie kann ich das jetzt das jetzt einem Menupunkt zuordnen.
Würde euch ja gerne weniger nerven, aber finde keine Literatur zu PureBasic und das Handbuch ist als Nachschlagewerk gut, aber zum erlernen eine Sprache nicht gerade didaktisch ein Hit. Und bei über 600 Befehlen verliert man schon mal die Übersicht.
Menudefinition /Externe exklusiv starten,nur wenn Hauptfenst
- FGK
- Beiträge: 249
- Registriert: 09.01.2005 14:02
- Computerausstattung: i5-4430 CPU / 8GB RAM
GeForce GT630
Windows 10 Home / 64-bit - Wohnort: Augsburg
Veruch mal das durchzugehen.
Hoffe es hilft dir
Hoffe es hilft dir
Code: Alles auswählen
Procedure CreateMenu()
If CreateMenu(0, WindowID())
MenuTitle("Game")
MenuItem( 1, "&Restart")
MenuItem( 2, "&Skip Level")
MenuItem( 3, "&Exit")
MenuTitle("?")
MenuItem(4, "About")
EndIf
EndProcedure
If OpenWindow(0, 100, 200, 640,400,#PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_WindowCentered , "MenuDemo")
CreateMenu()
Repeat
EventID.l = WindowEvent()
Select EventID
Case #PB_EventMenu
Select EventMenuID()
Case 1 ; Menüpunkt: Restart Level
;Hier deine Procedure Restart Level aufrufen!
Case 2
;Hier deine Procedure aufrufen oder Code direkt schreiben! Case 3
;Exit Menüpunkt
Case 4
;About Menüpunkt
EndSelect
Case #PB_Event_CloseWindow
Quit = 1
EndSelect
Until Quit = 1
EndIf
End
Schau in die Eventloop bei select EventMenuID()
die verschiedenen case ergebnisse rufen die Procedure auf
die verschiedenen case ergebnisse rufen die Procedure auf
Code: Alles auswählen
Procedure shutdown(flag)
Select flag
Case 0
MessageRequester("Procedure Meldung","Der Rechner wird nicht neugestartet weil das nur ein Demo ist",0)
Case 1
MessageRequester("Procedure Meldung","Der Rechner wird nicht heruntergefahren weil das nur ein Demo ist",0)
Case 2
MessageRequester("Procedure Meldung","Der Rechner wird nicht zusammengeknüllt weil das nur ein Demo ist",0)
Case 3
MessageRequester("Procedure Meldung","Der Rechner wird nicht aus dem Fenster geworfen weil das nur ein Demo ist",0)
Case 4
MessageRequester("Procedure Meldung","Das Programm wird beendet",0)
End
EndSelect
EndProcedure
If OpenWindow(0, 100, 150, 195, 260, #PB_Window_SystemMenu, "PureBasic - Menu")
If CreateMenu(0, WindowID())
MenuTitle("File")
MenuItem( 1, "&Load...")
MenuItem( 2, "Save")
MenuItem( 3, "Save As...")
MenuItem( 4, "Rechner &Neustarten")
MenuItem( 5, "Rechner &HerunterFahren")
MenuItem( 6, "Rechner &Zusammenknüllen")
MenuItem( 7, "Rechner &Entsorgen")
MenuItem( 8, "Programm per Procedure &verlassen")
MenuBar()
OpenSubMenu("Recents")
MenuItem( 9, "C:\Autoexec.bat")
MenuItem( 10, "D:\Test.txt")
OpenSubMenu("Even more !")
MenuItem( 11, "Test")
CloseSubMenu()
MenuItem( 12, "C:\Ok.bat")
CloseSubMenu()
MenuBar()
MenuItem( 13, "&Quit")
MenuTitle("Edition")
MenuItem( 14, "Cut")
MenuItem( 15, "Copy")
MenuItem(16, "Paste")
MenuTitle("?")
MenuItem(17, "About")
EndIf
DisableMenuItem(3, 1)
DisableMenuItem(16, 1)
;
; This is the 'event loop'. All the user actions are processed here.
; It's very easy to understand: when an action occurs, the EventID
; isn't 0 and we just have to see what have happened...
;
Repeat
Select WaitWindowEvent()
Case #PB_EventMenu
Select EventMenuID() ; To see which menu has been selected
Case 11 ; About
MessageRequester("About", "Cool Menu example", 0)
Case 4
shutdown(0)
Case 5
shutdown(1)
Case 6
shutdown(2)
Case 7
shutdown(3)
Case 8
shutdown(4)
Case 17
MessageRequester("About","DemoMenu",0)
Case 13
End
Default
MessageRequester("Info", "MenuItem: "+Str(EventMenuID()), 0)
EndSelect
Case #WM_CLOSE ; #PB_EventCloseWindow
Quit = 1
EndSelect
Until Quit = 1
EndIf
End
pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.