Problem beim Schließen von 2. Fenster: "#Gadget [gelöst
Verfasst: 03.05.2008 16:52
Hallo zusammen,
ich habe ein Anfängerproblem bei der Verwendung von zwei Fenstern:
Wenn ich das zweite Fenster schließe, kommt die Fehlermeldung "#Gadget Object nicht initialisiert"
Für jedes Fenster wurde eine Gadgetliste erstellt.
Das zweite Fenster wird über #PB_Event_CloseWindow geschlossen.
Wer weis einen Lösungsansatz über Hilfe würde ich mich freuen.
ich habe ein Anfängerproblem bei der Verwendung von zwei Fenstern:
Wenn ich das zweite Fenster schließe, kommt die Fehlermeldung "#Gadget Object nicht initialisiert"

Für jedes Fenster wurde eine Gadgetliste erstellt.
Das zweite Fenster wird über #PB_Event_CloseWindow geschlossen.
Wer weis einen Lösungsansatz über Hilfe würde ich mich freuen.
Code: Alles auswählen
fenster()
Repeat
event=WaitWindowEvent()
Select EventWindow() ; - FENSTERSTEUERUNG1
Case #Fenster
...
scanner_einrichten()
...
Case #Vorschau ; Vorschaufenster - Steuerung
Select event
Case #PB_Event_CloseWindow
CloseWindow(#Vorschau)
EndSelect
EndSelect ; FENSTERSTEUERUNG ENDE
Until event=#PB_Event_CloseWindow And EventWindow()=#Fenster
ende()
Procedure scanner_einrichten()
OpenWindow(#Vorschau,10,10,400,650,"Vorschau",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
CreateGadgetList(WindowID(#Vorschau))
ImageGadget(#Vorschaubild,5, 5, 390, 590, 0)
CallFunction(#scanner_dll, "ScanToFile", programm_pfad$+"\"+"setup-temp.bmp",0)
;Debug programm_pfad$
If LoadImage(#vorschaubild_anzeige,programm_pfad$+"\"+"setup-temp.bmp")
ResizeImage(#vorschaubild_anzeige,390,590)
SetGadgetState(#Vorschaubild,ImageID(#vorschaubild_anzeige))
Else
MessageRequester("Fehler", "Bild kann nicht geladen werden",#MB_ICONWARNING)
EndIf
EndProcedure
Procedure fenster(arbeitspfad$)
open_fenster()
AddStatusBarField(50)
AddStatusBarField(100)
AddStatusBarField(150)
AddStatusBarField(100)
AddStatusBarField(100)
AddStatusBarField(100)
SetGadgetState(#jpg,1)
SetGadgetState(#qualitaet,7)
If CreateMenu(#menu, WindowID(#Fenster))
MenuTitle("Projekt")
MenuItem(#menu_neu, "Projekt Schließen")
MenuItem(#menu_oeffnen, "Projekt öffnen")
MenuItem(#menu_wiederherstellen, "Projekt wiederherstellen")
MenuBar()
MenuItem(#menu_quit, "Quit")
MenuTitle("Einstellungen")
OpenSubMenu("Listen Bearbeiten")
MenuItem(#menu_instrumente, "Instrumente")
MenuItem(#menu_gespielt_in, "Gespielt In")
MenuItem(#menu_stimme, "Stimme")
MenuItem(#menu_stimme_zusatz, "Stimme Zusatz")
MenuItem(#menu_notenschluessel, "Notenschlüssel")
MenuItem(#menu_besetzung, "Besetzung")
CloseSubMenu()
MenuBar()
MenuItem(#menu_scanner_waehlen, "Scanner wählen")
MenuItem(#menu_scanner_einrichten,"Scanner einrichten")
MenuItem(#menu_arbeitspfad, "Arbeitspfad")
EndIf
;- dekaktivieren von Buttons und menues
DisableGadget(#erstelle_projekt, 1)
DisableGadget(#scannen , 1)
DisableGadget(#batch, 1)
DisableMenuItem(#menu, 1,1)
;- Pfad setzten
SetGadgetText(#arbeitspfad,arbeitspfad$)
projekt=0
;- listen fuellen
liste_fuellen(#instrument, "instrumente.dat")
liste_fuellen(#key, "key.dat")
liste_fuellen(#besetzung, "besetzung.dat")
liste_fuellen(#stimme, "stimme.dat")
liste_fuellen(#stimme_zusatz, "stimme2.dat")
liste_fuellen(#gespielt_in, "notation.dat")
bereits_gescannt(projekt_pfad$)
seiten=1
SetGadgetText(#seiten,Str(seiten))
If GetGadgetState(#deaktiviere_scanndialog)=1
StatusBarText(#StatusBar_0, 3, "Scandialog: aus")
Else
StatusBarText(#StatusBar_0, 3, "Scandialog: ein")
EndIf
scandialog_alt=GetGadgetState(#deaktiviere_scanndialog)
If GetGadgetState(#zweiA5)=1
StatusBarText(#StatusBar_0, 4, "Zwei A5 scannen")
Else
StatusBarText(#StatusBar_0, 4, "Ein A4 scannen")
EndIf
zweiA5_alt=GetGadgetState(#zweiA5)
EndProcedure
Procedure scanner_einrichten()
;CloseWindow(#Fenster)
OpenWindow(#Vorschau,10,10,400,650,"Vorschau",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
; SetActiveWindow(#Vorschau)
CreateGadgetList(WindowID(#Vorschau))
ImageGadget(#Vorschaubild,5, 5, 390, 590, 0)
CallFunction(#scanner_dll, "ScanToFile", programm_pfad$+"\"+"setup-temp.bmp",0)
;Debug programm_pfad$
If LoadImage(#vorschaubild_anzeige,programm_pfad$+"\"+"setup-temp.bmp")
ResizeImage(#vorschaubild_anzeige,390,590)
SetGadgetState(#Vorschaubild,ImageID(#vorschaubild_anzeige))
Else
MessageRequester("Fehler", "Bild kann nicht geladen werden",#MB_ICONWARNING)
EndIf
EndProcedure
;*********************************************************************
;*********************************************************************
;
; PureBasic Visual Designer v3.95 build 1485 (PB4Code)
;- Window Constants
;
Enumeration
#Fenster
EndEnumeration
;- Gadget Constants
;
Enumeration
#Text_0
#Text_1
#Text_2
#Frame3D_0
#Scandialog
#A5_scannen
#Anzeige_Pfad
#scanner_einrichten
#Text_5
#Verlag
#stimme
#stimme_zusatz
#in
#key
#besetzung
#instrument
#scannen
#batch
#scanne_das
#batch_das
#ExplorerList_5
#titel
#komponist
#arrangeur
#Text_11
#Text_12
#Text_13
#Frame3D_2
#deaktiviere_scanndialog
#zweiA5
#arbeitspfad_anzeige
#Text_15
#arbeitspfad
#Panel
#erstelle_projekt
#gespielt_in
#bmp
#jpg
#Qualitaet
#anzeige_qualitaet
#bereits_gescannt
#Text_23
#Frame3D_4
#Frame3D_6
#minus
#plus
#seiten
#Text_25
#scanner_waehlen
#liste_instrumente
#liste_gespielt_in
#liste_stimme
#liste_stimme_zusatz
#liste_notenschluessel
#liste_besetzung
#Frame3D_8
#Frame3D_9
#oeffne_projekt
EndEnumeration
;- StatusBar Constants
;
Enumeration
#StatusBar_0
EndEnumeration
;- Fonts
Global FontID1
FontID1 = LoadFont(1, "Arial", 10)
Global FontID2
FontID2 = LoadFont(2, "Arial", 8)
Procedure BalloonTip(WindowID, Gadget, Text$ , Title$, Icon)
ToolTip=CreateWindowEx_(0,"ToolTips_Class32","",#WS_POPUP | #TTS_NOPREFIX | #TTS_BALLOON,0,0,0,0,WindowID,0,GetModuleHandle_(0),0)
SendMessage_(ToolTip,#TTM_SETTIPTEXTCOLOR,GetSysColor_(#COLOR_INFOTEXT),0)
SendMessage_(ToolTip,#TTM_SETTIPBKCOLOR,GetSysColor_(#COLOR_INFOBK),0)
SendMessage_(ToolTip,#TTM_SETMAXTIPWIDTH,0,180)
Balloon.TOOLINFO\cbSize=SizeOf(TOOLINFO)
Balloon\uFlags=#TTF_IDISHWND | #TTF_SUBCLASS
Balloon\hWnd=GadgetID(Gadget)
Balloon\uId=GadgetID(Gadget)
Balloon\lpszText=@Text$
SendMessage_(ToolTip, #TTM_ADDTOOL, 0, Balloon)
If Title$ > ""
SendMessage_(ToolTip, #TTM_SETTITLE, Icon, @Title$)
EndIf
EndProcedure
Procedure Open_Fenster()
If OpenWindow(#Fenster, 22, 22, 940, 500, "Noten Commander Scanner", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered )
If CreateStatusBar(#StatusBar_0, WindowID(#Fenster))
EndIf
If CreateGadgetList(WindowID(#Fenster))
Frame3DGadget(#Frame3D_2, 15, 15, 355, 435, "Projekt")
TextGadget(#arbeitspfad_anzeige, 25, 410, 300, 30, "Arbeitspfad:")
ButtonGadget(#scannen, 610, 325, 150, 40, "Scannen!")
ButtonGadget(#batch, 790, 215, 70, 20, "Batch")
StringGadget(#scanne_das, 610, 245, 210, 35, "", #PB_String_ReadOnly)
SetGadgetFont(#scanne_das, FontID1)
StringGadget(#batch_das, 610, 205, 170, 30, "", #PB_String_ReadOnly)
SetGadgetFont(#batch_das, FontID2)
;-
ListIconGadget(#gespielt_in, 380, 25, 64, 130, "in", 60, #PB_ListIcon_FullRowSelect | #PB_ListIcon_AlwaysShowSelection)
;-
ListIconGadget(#instrument, 460, 25, 130, 425, "Instrument", 125, #PB_ListIcon_FullRowSelect | #PB_ListIcon_AlwaysShowSelection)
;-
ListIconGadget(#Stimme, 600, 25, 64, 130, "Stimme", 60, #PB_ListIcon_FullRowSelect | #PB_ListIcon_AlwaysShowSelection)
;-
ListIconGadget(#stimme_zusatz, 670, 25, 64, 130, "Stimme+", 60, #PB_ListIcon_FullRowSelect | #PB_ListIcon_AlwaysShowSelection)
;-
ListIconGadget(#key, 740, 25, 64, 130, "Noten-S.", 60, #PB_ListIcon_FullRowSelect | #PB_ListIcon_AlwaysShowSelection)
;-
ListIconGadget(#besetzung, 810, 25, 104, 130, "Besetzung", 100, #PB_ListIcon_FullRowSelect | #PB_ListIcon_AlwaysShowSelection)
ButtonGadget(#minus, 830, 260, 25, 20, "-")
ButtonGadget(#plus, 880, 260, 25, 20, "+")
StringGadget(#seiten, 855, 260, 25, 20, "", #PB_String_ReadOnly)
TextGadget(#Text_25, 830, 245, 75, 15, "Seite(n):", #PB_Text_Center)
;- Panel
PanelGadget(#Panel, 25, 35, 335, 360)
AddGadgetItem(#Panel, -1, "Beschreibung")
StringGadget(#titel, 88, 23, 150, 20, "")
StringGadget(#komponist, 88, 53, 150, 20, "")
StringGadget(#arrangeur, 88, 83, 150, 20, "")
TextGadget(#Text_11, 18, 23, 60, 20, "Titel", #PB_Text_Right)
TextGadget(#Text_12, 18, 53, 60, 20, "Komponist", #PB_Text_Right)
TextGadget(#Text_13, 18, 83, 60, 20, "Arrangeur", #PB_Text_Right)
TextGadget(#Text_15, 18, 113, 60, 20, "Verlag", #PB_Text_Right)
StringGadget(#verlag, 88, 113, 150, 20, "")
ButtonGadget(#erstelle_projekt, 148, 148, 90, 20, "Erstelle Projekt")
Frame3DGadget(#Frame3D_9, 8, 8, 240, 170, "Neues Projekt")
ButtonGadget(#oeffne_projekt, 13, 188, 90, 20, "Projekt öffnen")
AddGadgetItem(#Panel, -1, "Pfad")
ExplorerListGadget(#arbeitspfad, 3, 8, 320, 320, "")
AddGadgetItem(#Panel, -1, "Einstellungen")
CheckBoxGadget(#deaktiviere_scanndialog, 8, 23, 140, 20, "deaktiviere Scandialog")
CheckBoxGadget(#zweiA5, 8, 43, 140, 25, "aktiviere Batch (2 X A5)")
ButtonGadget(#scanner_einrichten, 8, 73, 105, 25, "Scanner einrichten")
OptionGadget(#bmp, 183, 18, 120, 20, "Speichere als BMP")
OptionGadget(#jpg, 183, 38, 110, 20, "Speichere als JPG")
TrackBarGadget(#Qualitaet, 188, 73, 130, 30, 0, 10, #PB_TrackBar_Ticks)
BalloonTip(GadgetID(#Qualitaet), #Qualitaet, "JPEG Qualität: 0=Schlechteste Qualität 10=Beste Qualität", "", #TOOLTIP_NO_ICON)
TextGadget(#anzeige_qualitaet, 188, 58, 90, 20, "Qualität")
Frame3DGadget(#Frame3D_4, 168, 3, 155, 135, "Ausgabe...")
Frame3DGadget(#Frame3D_6, 3, 3, 160, 135, "Scannen...")
ButtonGadget(#scanner_waehlen, 8, 103, 105, 25, "Scanner wählen")
ButtonGadget(#liste_instrumente, 13, 243, 85, 20, "Instrumente")
ButtonGadget(#liste_gespielt_in, 13, 268, 85, 20, "gespielt in")
ButtonGadget(#liste_stimme, 13, 293, 85, 20, "Stimme")
ButtonGadget(#liste_stimme_zusatz, 108, 293, 85, 20, "Stimme zusatz")
ButtonGadget(#liste_notenschluessel, 108, 243, 85, 20, "Notenschlüssel")
ButtonGadget(#liste_besetzung, 108, 268, 85, 20, "Besetzung")
Frame3DGadget(#Frame3D_8, 8, 228, 195, 100, "Listen bearbeiten")
AddGadgetItem(#Panel, -1, "Übersicht")
ListViewGadget(#bereits_gescannt, 138, 28, 175, 300)
TextGadget(#Text_23, 138, 8, 175, 15, "Bereits gescannt:")
CloseGadgetList()
EndIf
EndIf
EndProcedure