Hier ist mein Code; es geht um das Fenster #Window_Action:
MAIN
Code: Alles auswählen
; PROGRAMM XXXXXX
; PB Version 4.2
; Project Propertiers
; Main Window 900 x 675
; Faktor 1 1/3
; Aktionsfenster 500 x 375
;Pfadangabe auslesen
If ReadFile(0,"C:\Pfadangabe_QM.txt")
Global sPfad.s = ReadString(0)
Debug sPfad
CloseFile(0)
Else
MessageRequester ("Hinweis","Du musst erst das Programm ErsterStart_Pfadeingabe starten!",0)
EndIf
; [A.] Includes
SetCurrentDirectory(sPfad)
IncludePath "Includes" ;relativ zum SPfad
IncludeFile "DatenbankanbindungSQLite.pb"
IncludeFile "MainGUI.pb" ;hier sind alle Interface-Objekte (Windows, Gadgets, Menus etc. definiert)
; [B.] Konstanten
; I. Datenbank - Konstanten
Enumeration
#DB_QM
EndEnumeration
; II. Gadget - Konstanten
; III. Action-Fenster-Status
Enumeration
#AF_Normal
#AF_Abfrage
#AF_Mod
#AF_HM
EndEnumeration
; [C.] Strukturen
Structure DB
sFile.S
sUser.S
sPass.S
EndStructure
; [D.] Variablen
; I. Globale Variablen
Global QM_DB.DB
Global sProjektname.s
Global iAction.i
Global iAFStatus.i
With QM_DB
\sFile = "Database\QM.sqlite"
\sUser = ""
\sPass = ""
EndWith
; II. Andere Variablen
Define ix.i
Define iy.i
Define SText.s
Define sZS.s
Define sSQL.s
Define sAbfrage.i
Define iMouseX.i
Define iMousey.i
Define lEventID.l
Define lEventID2.l
Define iiExit.i
Define iiExit2.i
; [E.] Prozeduren
; [F.] *** MAIN ***
; MainGUI öffnen
open_Startwindow()
UseSQLiteDatabase()
; Hauptaktionsschleife
iAction = 0 ; Aktionsmodus (Modifikation + Abfrage) off
Repeat
lEventID = WaitWindowEvent()
If lEventID = #PB_Event_CloseWindow
Select EventWindow()
Case #Startwindow
iExit = 1
Case #Window_DBLaden
CloseWindow(#Window_DBLaden)
Case #Window_Error
CloseWindow(#Window_Error)
Case #Window_Projektladen
CloseWindow(#Window_Projektladen)
Case #Window_Action
CloseWindow (#Window_Action)
EndSelect
EndIf
; Hauptmenu abfragen
If lEventID = #PB_Event_Menu
Select EventMenu()
Case #MENU_DatenbankLaden
Debug "Datenbank soll geladen werden"
Open_Window_DBLaden()
Case #MENU_ProjektNeu
Debug "Neues Projekt"
Case #MENU_Projektladen
Open_Window_Projektladen()
OpenDB(#DB_QM, QM_DB\sFile, QM_DB\sUser, QM_DB\sPass)
sSQL = "SELECT * FROM Projekte"
If DatabaseQuery(#DB_QM, sSQL)
ix = 0
While NextDatabaseRow(#DB_QM)
SText = ""
sText = "Projektname :" + GetDatabaseString(#DB_QM, 1) + "( Projekt-ID:" + GetDatabaseString (#DB_QM,0) +")"
AddGadgetItem(#Listview_Projektladen, ix, sText)
ix = ix +1
Wend
EndIf
Case #MENU_ProjektLetztgenutzt
Case #MENU_ProjektLetzterstellt
Debug "Letzterstelltes Projekt aufrufen"
Case #MENU_Ende
Debug "Programm beenden"
Abfrage = MessageRequester ("WARNUNG","Bist du sicher, dass du mich einfach so abschalten willst?",#PB_MessageRequester_YesNo)
If Abfrage = #PB_MessageRequester_Yes
End
EndIf
Case #MENU_Zeitarchiv
Debug "Zeitarchiv aufrufen"
EndSelect
EndIf
; Gadgets abfragen
If lEventID = #PB_Event_Gadget
Select EventGadget()
Case #Button_DBL_Ok
Debug "Ok-Button gedrückt"
Case #Button_DBL_Cancel
Debug "Cancel gedrückt"
CloseWindow(#Window_DBLaden)
Case #Listview_Projektladen
sZS = GetGadgetText(#Listview_Projektladen)
SetGadgetText(#Text_PL_Headline,sZs)
sZs = ""
Case #Button_PL_ok
sZS = GetGadgetText(#Listview_Projektladen)
If sZs <> ""
sProjektname = sZs
CloseWindow(#Window_Projektladen)
EndIf
ix = FindString (sZs, ":",1)
ix = Len (sZs) - ix
sZs = Right(SZs, ix) ; alles rechts von Projektname:
ix = FindString (sZs, "(",1) ;(ID..) wegschneiden
sProjektname = Left (sZs,ix-1)
SetGadgetText(#Text_Projektname, sProjektname)
;Aktionsfenster öffnen
Open_Window_Action() ; DIESES DRECKSFENSTER IST GEMEINT!!!
Case #Button_PL_IDGo
sZS.s = GetGadgetText(#String_PL_ID)
If sZs = "Möglichkeit, ProjektID einzugeben" Or sZs = ""
Goto CaseEnde
EndIf
;iZs.i = Val (sZs)
sSQL = "SELECT * FROM Projekte WHERE ProjektID=" + sZs
If DatabaseQuery(#DB_QM, sSQL)
ix = 0
szS = ""
While NextDatabaseRow(#DB_QM)
ix = ix +1
sZs = GetDatabaseString(#DB_QM,1)
Wend
EndIf
If ix = 0
Error ("Es existiert kein Projekt, das eine solche ID als Kennung trägt!")
Goto CaseEnde
EndIf
sAbfrage = MessageRequester ("Hinweis","Soll dieses Projekt geladen werden: " + sZs,#PB_MessageRequester_YesNo)
If sAbfrage = #PB_MessageRequester_Yes
sProjektname = sZs
CloseWindow(#Window_Projektladen)
SetGadgetText(#Text_Projektname,sProjektname)
iAction = 1
EndIf
Case #ButtonImage_Abfrage
MessageRequester ("Hinweis","Abfrage wurde gedrückt!",0)
CaseEnde:
EndSelect
EndIf
Until iExit = 1
End
Code: Alles auswählen
; User Interfaces
;Pfadangabe auslesen
If ReadFile(0,"C:\Pfadangabe_QM.txt")
Global sPfad.s = ReadString(0)
CloseFile(0)
Else
MessageRequester ("Hinweis","Du musst erst das Programm ErsterStart_Pfadeingabe starten!",0)
EndIf
; [A] Includes
; [B.] Konstanten
; I. Window - Konstanten
Enumeration
#Startwindow
#Window_DBLaden
#Window_Error
#Window_Projektladen
#Window_Action
EndEnumeration
; II. Menubar - Konstanten
Enumeration
#MenuBar_2
EndEnumeration
Enumeration
#MENU_DatenbankLaden
#MENU_ProjektNeu
#MENU_Projektladen
#MENU_ProjektLetztgenutzt
#MENU_ProjektLetzterstellt
#MENU_Zeitarchiv
#MENU_Ende
EndEnumeration
; III. Gadget - Konstanten
;
Enumeration
#Image_0
#Image_DBladen
#Text_DBL_T1
#ExplorerList_DBLaden
#Text_1
#Text_DBL_T2
#Button_DBL_Ok
#Button_PL_ok
#Button_DBL_Cancel
#Text_Error
#Image_Error
#Listview_Projektladen
#Button_PL_OkEnumeration
#Text_PL_Headline
#Button_PL_Cancel
#Button_PL_IDGo
#String_PL_ID
#Image_Projektladen
#Frame3D_Projektname
#Text_Projektname
#Button_Abfrage
#Image_Action
#ButtonImage_Abfrage
#ButtonImage_Bearbeiten
#ButtonImage_Hauptmenu
#Button_Test
EndEnumeration
; IV. Datenbank - Konstanten
; [C.] Strukturen
; [D.] Variablen
; I. Globale Variablen
Global Image0
Global Image_DBLaden
Global ImageError
Global ImageProjektladen
Global ImageAction_normal
Global ImageIconAbfrage
Global ImageIconBearbeiten
Global ImageIconHauptmenu
Global FontID1
FontID1 = LoadFont(1, "Arial", 16, #PB_Font_Bold)
Global FontID2
FontID2 = LoadFont(2, "Arial", 9)
Global FontID_Arial12
FontID_Arial12 = LoadFont(3, "Arial", 12)
; II. Andere Variablen
;- Catch Images
Image0 = CatchImage(0, ?Image0)
Image_DBLaden = CatchImage(1, ?Image_DBLaden)
ImageError = CatchImage(2, ?ImageError)
ImageProjektladen = CatchImage (3, ?ImageProjektladen)
ImageAction_normal = CatchImage (4, ?ImageAction_normal)
ImageIconAbfrage = CatchImage(5, ?ImageIconAbfrage)
ImageIconBearbeiten = CatchImage(6, ?ImageIconBearbeiten)
ImageIconHauptmenu = CatchImage(7, ?ImageIconHauptmenu)
SetCurrentDirectory (SPfad)
;- Images
DataSection
Image0:
IncludeBinary "K:\VB-Programme\PURE BASIC\QM\Graphics\BG_Main900_675.bmp"
Image_DBLaden:
IncludeBinary "K:\VB-Programme\PURE BASIC\QM\Graphics\wDatenbankLaden.bmp"
ImageError:
IncludeBinary "K:\VB-Programme\PURE BASIC\QM\Graphics\Error.bmp"
ImageProjektladen:
IncludeBinary "K:\VB-Programme\PURE BASIC\QM\Graphics\wProjektladen.bmp"
ImageAction_normal:
IncludeBinary "K:\VB-Programme\PURE BASIC\QM\Graphics\BG_Action_normal.bmp"
ImageIconAbfrage:
IncludeBinary "K:\VB-Programme\PURE BASIC\QM\Graphics\Abfrage2.ico"
ImageIconBearbeiten:
IncludeBinary "K:\VB-Programme\PURE BASIC\QM\Graphics\Bearbeiten.ico"
ImageIconHauptmenu:
IncludeBinary "K:\VB-Programme\PURE BASIC\QM\Graphics\Hauptmenu.ico"
EndDataSection
; [E.] Prozeduren
Procedure Open_Startwindow()
If OpenWindow(#Startwindow, 50, 1, 900, 675, "Start", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar )
If CreateMenu(#MenuBar_2, WindowID(#Startwindow))
MenuTitle("Datei")
MenuItem(#MENU_DatenbankLaden, "Datenbank laden")
MenuItem(#MENU_ProjektNeu, "Neues Projekt erstellen")
MenuItem(#MENU_Projektladen, "Projekt laden")
MenuItem(#MENU_ProjektLetztgenutzt, "Letztgenutzes Projekt laden")
MenuItem(#MENU_ProjektLetzterstellt, "Letzterstelltes Projekt laden")
MenuItem(#MENU_Ende, "Programm beenden")
MenuTitle("Zeitarchiv")
MenuItem(#MENU_Zeitarchiv, "Zeitarchiv aufrufen")
MenuTitle("Hilfe")
EndIf
If CreateGadgetList(WindowID(#Startwindow))
TextGadget(#Text_Projektname, 10, 285, 350, 45, "Projektname", #PB_Text_Center | #PB_Text_Border)
SetGadgetFont(#Text_Projektname, FontID_Arial12)
ImageGadget(#Image_0, 0, 0, 900, 705, Image0)
EndIf
EndIf
EndProcedure
Procedure Open_Window_Action()
If OpenWindow(#Window_Action, 50, 1, 900, 675, "Action", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar )
If CreateGadgetList(WindowID(#Window_Action))
ImageGadget(#Image_Action, 0, 0, 900, 705, ImageAction_normal)
ButtonImageGadget(#ButtonImage_Abfrage, 165, 420, 123, 70, ImageIconAbfrage)
ButtonImageGadget(#ButtonImage_Bearbeiten, 165, 495, 123, 70, ImageIconBearbeiten)
ButtonImageGadget(#ButtonImage_Hauptmenu, 165, 570, 123, 70, ImageIconHauptmenu)
ButtonGadget(#Button_Test, 195, 330, 105, 45, "Test")
EndIf
EndIf
EndProcedure
Procedure Open_Window_DBLaden()
If OpenWindow(#Window_DBLaden, 329, 84, 500, 373, "Datenbank laden", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
If CreateGadgetList(WindowID(#Window_DBLaden))
TextGadget(#Text_DBL_T2, 15, 105, 150, 210, "Wichtig! Ein Laden der Datenbank ist nur erforderlich, wenn eine andere als die Standarddatenbank verwendet werden soll! Wird eine Datenbank ausgewählt, die nicht mit diesem Programm kompatibel ist, wird es zum Absturz des Programms kommen!")
SetGadgetFont(#Text_DBL_T2, FontID2)
ButtonGadget(#Button_DBL_Ok, 30, 330, 60, 30, "DB laden", #PB_Button_MultiLine)
ButtonGadget(#Button_DBL_Cancel, 105, 330, 60, 30, "CANCEL", #PB_Button_MultiLine)
ExplorerListGadget(#ExplorerList_DBLaden, 180, 105, 315, 255, "", #PB_Explorer_AlwaysShowSelection | #PB_Explorer_AutoSort)
ImageGadget(#Image_DBladen, 0, 0, 500, 375, Image_DBLaden)
EndIf
EndIf
EndProcedure
Procedure Open_Window_Projektladen()
If OpenWindow(#Window_Projektladen, 338, 187, 600, 450, "Projekt laden", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
If CreateGadgetList(WindowID(#Window_Projektladen))
ListViewGadget(#Listview_Projektladen, 255, 195, 330, 240)
TextGadget(#Text_PL_Headline,240,135,345,45,"")
ButtonGadget(#Button_PL_Ok, 15, 405, 60, 30, "OK")
ButtonGadget(#Button_PL_Cancel, 90, 405, 60, 30, "CANCEL")
ButtonGadget(#Button_PL_IDGo, 210, 360, 30, 30, ">>")
StringGadget(#String_PL_ID, 15, 360, 180, 30, "Möglichkeit, ProjektID einzugeben")
ImageGadget(#Image_Projektladen, 0, 0, 600, 450, ImageProjektladen)
EndIf
EndIf
EndProcedure
Procedure Error (Errormessage.s)
If OpenWindow(#Window_Error, 306, 104, 500, 375, "FEHLER", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
If CreateGadgetList(WindowID(#Window_Error))
TextGadget(#Text_Error, 210, 165, 270, 180, "Es ist folgender Fehler aufgetreten: "+Errormessage)
ImageGadget(#Image_Error, 0, 0, 500, 375, ImageError)
EndIf
EndIf
EndProcedure
