[RESOLU] Gadget non initialisé !

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
omega
Messages : 617
Inscription : sam. 26/nov./2011 13:04
Localisation : Alger

[RESOLU] Gadget non initialisé !

Message par omega »

Bonsoir,
Message erreur: Le gadget fprod_grid n'est pas initialisé !
L'erreur est signalée à ce niveau:

Code : Tout sélectionner

AddGadgetColumn(#fprod_Grid,1, "Famille",100)
Voici le code complet (réduit)

Code : Tout sélectionner

;EnableExplicit

Enumeration ;Windows
#WinTable
EndEnumeration

Enumeration ;Touches clavier
#ToucheF1
#ToucheF2
#ToucheF3
#ToucheF4
#ToucheF5
#ToucheF6
#ToucheF7
#ToucheF8
#ToucheF9
#ToucheF10
#ToucheF11
#ToucheF12
#ToucheAlt
#ToucheSup
#ToucheEsc
#Return
EndEnumeration

Enumeration ;Panels
#PanelTable
#PanelMvt
#PanelTres
#PanelJL
#PanelTool
EndEnumeration

Enumeration ;Gadget (table des produits)
#fprod_Titre
#fprod_Frame
#fprod_new
#fprod_txtCode
#fprod_Code
#fprod_txtfam
#fprod_fam
#fprod_txtref
#fprod_ref
#fprod_TxtProd
#fprod_Prod
#fprod_TxtUm
#fprod_Um
#fprod_TxtQi
#fprod_Qi
#fprod_TxtVi
#fprod_Vi
#fprod_TxtPa
#fprod_Pa
#fprod_TxtPvd
#fprod_Pvd
#fprod_TxtPvg
#fprod_Pvg
#fprod_Valider
#fprod_supprimer
#fprod_grid
EndEnumeration

Structure jcaisse
  datedoc.s
  datenum.s
  lib.s
  rec.s
  dep.s
  cletri.s
EndStructure

Structure Fstock
  datemvt.s
  datenum.s
  Doc.s
  Numdoc.s
  lib.s
  qe.s
  qs.s
  stock.s
  cletri.s
EndStructure

Structure Produit
  CodeProd.s
  Fam.s
  Ref.s
  Prod.s
  um.s
  qi.s
  pa.s
  pvd.s
  pvg.s
EndStructure

Global Date$,Datenum,datenum$,wlargeur,whauteur,wRow,wCol,wCol1,wCol2,wCol3,wCol4,wCol5,wFont,sql.s,PanelTable
Global Codeprod,Codeprod$,prod$,fam$,ref$,um$,qi$,pa$,pvd$,pvg$,qiE$,qiD$,paE$,paD$,pvdE$,pvdD$,pvgE$,pvgD$
Global Database, Query$, Result,Dbs$,String$,wnew$,wval$,i,wtaille,wleft$,wdecim$,wpos,u,wnbre$,wSt$,wNbDecim,k$,z
Global Idprod, Tprod.produit

;With Mystr
;  \datemvt="22/08/2018"
;  \lib="ce n'est qu'un test"
;  \mnt="52548.25"
;EndWith

;With mystr
;   Debug \datemvt
;   Debug \lib
;   Debug \mnt
; EndWith

;---------------------------------------------------------------------------------------------
UseSQLiteDatabase()
;---------------------------------------------------------------------------------------------------------

Procedure CheckDatabaseUpdate(Database, Query$)
   Result = DatabaseUpdate(Database, Query$)
   If Result = 0
      MessageRequester("Erreur" ,DatabaseError() + "    Db=" +  Str(database) + " query$= " + Query$)
   EndIf
   ProcedureReturn Result
EndProcedure

;----------------------------------------------------------------------------------------------------------
Procedure CheckDatabaseQuery(Database, Query$)
   Result = DatabaseQuery(Database, Query$)
   If Result = 0
      MessageRequester("Erreur" ,DatabaseError() + "    Db=" +  Str(database) + " query$= " + Query$)
   EndIf
   ProcedureReturn Result
EndProcedure

;--------------------------------------------------------------------------------------------------
;Procedure OpenDataBases()
;Idprod=0
;Dbs$ = "Data\prod.db"
;If Not OpenDatabase(Idprod, Dbs$, "", "")
;   MessageRequester("Info", "Ouverture " + Dbs$ + " impossible!")
;   End
;EndIf
;EndProcedure

;--------------------------------------------------------------------------------------------------------
Procedure Fprod_prod()
EndProcedure

;--------------------------------------------------------------------------------------------------------
Procedure PanelTable()
EndProcedure

;--------------------------------------------------------------------------------------------------------
Procedure Fprod_new()
EndProcedure

;--------------------------------------------------------------------------------------------------------
Procedure Fprod_supprimer()
EndProcedure

;--------------------------------------------------------------------------------------------------------
Procedure Fprod_valider()
EndProcedure

;--------------------------------------------------------------------------------------------------------
Procedure Fprod_grid()
EndProcedure

;--------------------------------------------------------------------------------------------------------
Procedure Fprod_return()
   If  GetFocus_() = GadgetID(#fprod_fam)
       SetFocus_(GadgetID(#fProd_Ref))
   ElseIf GetFocus_() = GadgetID(#fprod_ref)
       SetFocus_(GadgetID(#fProd_Prod))
   ElseIf GetFocus_() = GadgetID(#fprod_prod)
       prod$=GetGadgetText(#fprod_prod)
       SetFocus_(GadgetID(#fProd_um))
   ElseIf GetFocus_() = GadgetID(#fprod_um)
       SetFocus_(GadgetID(#fProd_qi))
   ElseIf GetFocus_() = GadgetID(#fprod_qi)
       SetFocus_(GadgetID(#fProd_pa))
   ElseIf GetFocus_() = GadgetID(#fprod_pa)
       SetFocus_(GadgetID(#fProd_pvd))
   ElseIf GetFocus_() = GadgetID(#fprod_pvd)
       SetFocus_(GadgetID(#fProd_pvg))
   ElseIf GetFocus_() = GadgetID(#fprod_pvg)
       ;fprod_valider()
  EndIf
EndProcedure

;--------------------------------------------------------------------------------------------------------
Procedure Run_table()
Protected ExitTable=0
date$=FormatDate("%dd/%mm/%yyyy", Date())
ExamineDesktops()
Wlargeur=DesktopWidth(0)
Whauteur=DesktopHeight(0)
OpenWindow(#Wintable, 0,0,0,0, "Logiciel de gestion commerciale - Tables", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_Maximize)
SetWindowColor(#Wintable,RGB(250, 213, 152))
WLargeur=Wlargeur-30:WHauteur=Whauteur-50 
   PanelGadget(#PanelTable, 10,10, wlargeur, WHauteur)
   AddGadgetItem (#PanelTable, -1, " Table des produits")
   TextGadget(#fprod_Titre, 20, 20, 300, 30, "TABLE DES PRODUITS")
   wrow=50 : wcol=220
   FrameGadget(#fprod_frame, 10, wrow, 960, 150,"", #PB_Frame_Flat)
   wrow=wrow+20
   TextGadget(#fprod_Txtcode,20, wrow+1,100, 20, "Code interne:" )
   TextGadget(#fprod_code, 120, wrow, 50, 20, "" )
   TextGadget(#fprod_Txtfam, 20, wrow+23, 80, 20, "Famille :" )
   ComboBoxGadget(#fprod_fam,120, wrow+23,250,20,#PB_ComboBox_Editable |#PB_ComboBox_UpperCase)
   TextGadget(#fprod_Txtref,20, wrow+46, 100, 20, "Référence:" )
   ComboBoxGadget(#fprod_ref,120, wrow+46,250,20,#PB_ComboBox_Editable |#PB_ComboBox_UpperCase)
   TextGadget(#fprod_TxtProd,20, wrow+69, 100, 20, "Désignation:" )
   ComboBoxGadget(#fprod_prod,120, wrow+69,250,20,#PB_ComboBox_Editable |#PB_ComboBox_UpperCase)
   TextGadget(#fprod_TxtUm, 20, wrow+92, 230, 20, "Unité de mesure:" )
   ComboBoxGadget(#fprod_um,120, wrow+92,250,20,#PB_ComboBox_Editable |#PB_ComboBox_UpperCase)
   wrow=wrow+23
   TextGadget(#fprod_TxtQi, 480, wrow, 100, 20, "Quantité initiale:" )
   StringGadget(#fprod_Qi, 610, wrow, 80, 20, "" )
   TextGadget(#fprod_TxtPa,480, wrow+23, 230, 20, "Prix d'achat:" )
   StringGadget(#fprod_Pa, 610, wrow+23, 80, 20, "" )
   TextGadget(#fprod_TxtPvD,480, wrow+46, 230, 20, "Prix de vente détail:" )
   StringGadget(#fprod_PvD, 610, wrow+46, 80, 20, "" )
   TextGadget(#fprod_TxtPvG,480, wrow+69, 230, 20, "Prix de vente en gros:" )
   StringGadget(#fprod_PvG, 610, wrow+69, 80, 20, "" )
   wrow=wrow+140
   ButtonGadget(#fprod_supprimer,10,wrow, 130, 30, "(#Alt+#SUP) Supprimer")
   ButtonGadget(#fprod_new,360,wrow, 140, 30, "(#F6) Nouveau produit")
   ButtonGadget(#fprod_valider, 870,wrow, 100, 30, "(#F5) Valider")
   wrow=wrow+40
   ListIconGadget(#fprod_Grid, 10, wrow, 960, 300, "Code", 40, #PB_ListIcon_GridLines | #PB_ListIcon_FullRowSelect)
   AddGadgetColumn(#fprod_Grid,1, "Famille",100)
   AddGadgetColumn(#fprod_Grid,2, "Référence",90)
   AddGadgetColumn(#fprod_Grid,3, "Désignation du produit", 200)
   AddGadgetColumn(#fprod_Grid,4, "U. M.",60)
   AddGadgetColumn(#fprod_Grid,5, "Qté initiale",70)
   AddGadgetColumn(#fprod_Grid,6, "Prix d'achat",70)
   AddGadgetColumn(#fprod_Grid,7, "P.Vente D.",70)
   AddGadgetColumn(#fprod_Grid,8, "P.Vente G.",70)

   AddGadgetItem (#PanelTable, -1, " FERMER");***************************************************

wfont=17
SetGadgetFont(#fprod_Titre, FontID(wfont))
SetGadgetState(#panelTable,panelTable)
SetGadgetColor(#fprod_Code,#PB_Gadget_BackColor,RGB(176, 217, 214))
SetGadgetColor(#fprod_grid,#PB_Gadget_BackColor,RGB(250, 231, 148))

ExitTable=0

AddKeyboardShortcut(#wintable,#PB_Shortcut_Return,#Return) 
AddKeyboardShortcut(#wintable,#PB_Shortcut_F1,#ToucheF1)
AddKeyboardShortcut(#wintable,#PB_Shortcut_F2,#ToucheF2)
AddKeyboardShortcut(#wintable,#PB_Shortcut_F3,#ToucheF3)
AddKeyboardShortcut(#wintable,#PB_Shortcut_F4,#ToucheF4)
AddKeyboardShortcut(#wintable,#PB_Shortcut_F5,#ToucheF5)
AddKeyboardShortcut(#wintable,#PB_Shortcut_F6,#ToucheF6)
AddKeyboardShortcut(#wintable,#PB_Shortcut_F8,#ToucheF8)
AddKeyboardShortcut(#wintable,#PB_Shortcut_Alt | #PB_Shortcut_Delete,#ToucheSup)
AddKeyboardShortcut(#wintable,#PB_Shortcut_Escape,#ToucheEsc)

BindGadgetEvent(#panelTable,@panelTable())
BindGadgetEvent(#fprod_prod,@Fprod_prod())
BindGadgetEvent(#fprod_supprimer,@Fprod_supprimer())
BindGadgetEvent(#fprod_new,@Fprod_new())
BindGadgetEvent(#fprod_valider,@Fprod_valider())
BindGadgetEvent(#fprod_grid,@Fprod_grid())

;BindMenuEvent(#Return,Ng,@Fprod_return())

Repeat
  WaitWindowEvent()
ForEver 
EndProcedure
;OpenDataBases()
Run_table()
Merci
Dernière modification par omega le jeu. 23/août/2018 23:34, modifié 1 fois.
Win7 (x64) 64 bits Pb 5.72
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Gadget non initialisé !

Message par falsam »

Normal ca ton système d’énumération des gadgets est moisi
:idea: Voir l'aide https://www.purebasic.com/french/docume ... tions.html

Tu vas rencontré d'autres erreurs dans ton code comme

Code : Tout sélectionner

wfont=17
SetGadgetFont(#fprod_Titre, FontID(wfont))
:idea: Voir l'aide https://www.purebasic.com/french/docume ... ontid.html
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
G-Rom
Messages : 3626
Inscription : dim. 10/janv./2010 5:29

Re: Gadget non initialisé !

Message par G-Rom »

sans lancer ton code, ton enum est foireuse les panels ont les même id que les gadgets.
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Gadget non initialisé !

Message par falsam »

Remplace ton systeme d'énumeration par celui là

Code : Tout sélectionner

Enumeration Windows
  #WinTable
EndEnumeration

Enumeration Gadget
  #PanelTable
  #PanelMvt
  #PanelTres
  #PanelJL
  #PanelTool
  
  #fprod_Titre
  #fprod_Frame
  #fprod_new
  #fprod_txtCode
  #fprod_Code
  #fprod_txtfam
  #fprod_fam
  #fprod_txtref
  #fprod_ref
  #fprod_TxtProd
  #fprod_Prod
  #fprod_TxtUm
  #fprod_Um
  #fprod_TxtQi
  #fprod_Qi
  #fprod_TxtVi
  #fprod_Vi
  #fprod_TxtPa
  #fprod_Pa
  #fprod_TxtPvd
  #fprod_Pvd
  #fprod_TxtPvg
  #fprod_Pvg
  #fprod_Valider
  #fprod_supprimer
  #fprod_grid
EndEnumeration

Enumeration #PB_Compiler_EnumerationValue 
  #ToucheF1
  #ToucheF2
  #ToucheF3
  #ToucheF4
  #ToucheF5
  #ToucheF6
  #ToucheF7
  #ToucheF8
  #ToucheF9
  #ToucheF10
  #ToucheF11
  #ToucheF12
  #ToucheAlt
  #ToucheSup
  #ToucheEsc
  #Return
EndEnumeration
et commente les lignes 239 et 240

Code : Tout sélectionner

 wfont=17
  ;SetGadgetFont(#fprod_Titre, FontID(wfont))
Ca devrait fonctionner
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
omega
Messages : 617
Inscription : sam. 26/nov./2011 13:04
Localisation : Alger

Re: Gadget non initialisé !

Message par omega »

Code : Tout sélectionner

wfont=17
SetGadgetFont(#fprod_Titre, FontID(wfont))
C'est parce que j'ai supprimé par erreur la procédure Winfonts()
Merci Falsam
Win7 (x64) 64 bits Pb 5.72
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Gadget non initialisé !

Message par falsam »

Tu as un PanelGadget() dans ton code, pense à le fermer avec un CloseGadgetList()
:idea: Voir l'exemple de l'aide https://www.purebasic.com/french/docume ... adget.html
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
omega
Messages : 617
Inscription : sam. 26/nov./2011 13:04
Localisation : Alger

[RESOLU] Gadget non initialisé !

Message par omega »

sans lancer ton code, ton enum est foireuse les panels ont les même id que les gadgets.
C'est la première fois que j'ai découpé la partie Enumeration, d'habitude j'utilise une seule Enumeration pour l'ensemble.
Merci G-Rom (c'est corrigé et ça marche)
Win7 (x64) 64 bits Pb 5.72
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: [RESOLU] Gadget non initialisé !

Message par falsam »

Omega a écrit :j'utilise une seule Enumeration pour l'ensemble.
A eviter si tu veux faciliter la lecture de ton code
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
G-Rom
Messages : 3626
Inscription : dim. 10/janv./2010 5:29

Re: [RESOLU] Gadget non initialisé !

Message par G-Rom »

omega a écrit :
sans lancer ton code, ton enum est foireuse les panels ont les même id que les gadgets.
C'est la première fois que j'ai découpé la partie Enumeration, d'habitude j'utilise une seule Enumeration pour l'ensemble.
Merci G-Rom (c'est corrigé et ça marche)
Voila comment je code en gros, je te l'ai déjà expliquer je ne sais plus ou , mais revoila :
aucun enum.

Code : Tout sélectionner

Structure MonApplication
  window.l
  ;...
  Map MesGadget.i()
  ;...
  run.a
EndStructure

Compta2000.MonApplication
Compta2000\window = OpenWindow(#PB_Any,0,0,100,100,"Compta2000")
Compta2000\MesGadget("Bouton 1") = ButtonGadget(#PB_Any,0,0,100,100,"?")
Compta2000\run = #True 



While Compta2000\run
  Repeat
    event = WindowEvent()
    If event = #PB_Event_CloseWindow
      Compta2000\run = #False 
      Break 2
    EndIf 
  Until event = 0
  
Wend

CloseWindow(Compta2000\window)
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: [RESOLU] Gadget non initialisé !

Message par falsam »

La méthode que j'utilise

Code : Tout sélectionner

EnableExplicit

Enumeration Fonts
  #FontGlobal  
EndEnumeration

Enumeration Window
  #mf ;MainForm
  #ch ;Children
EndEnumeration

Enumeration Gadget
  ;Gadgets fenetre principale (prefixe mf)
  #mfOpen
  #mfClose
  
  ;Gadget fenetre fille (Prefixe chi)
  #chClose
EndEnumeration


;Plan de l'application
Declare Start()   ;Debut de l'application
Declare chShow()  ;Ouvre fenetre enfant
Declare Exit()    ;Fin d'application

Start()

;Fenetre principale
Procedure Start()
  ;Initialisation des fonts
  LoadFont(#FontGlobal, "", 10)
  SetGadgetFont(#PB_Default, FontID(#FontGlobal))
  
  ;Affchage de la fenetre
  OpenWindow(#mf, 0, 0, 800, 600, "Fenetre principale", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  ButtonGadget(#mfOpen, 700, 20, 80, 22, "Ouvrir") 
  ButtonGadget(#mfClose, 700, 50, 80, 22, "Fermer")
  
  ;Declencheurs
  BindGadgetEvent(#mfOpen, @chShow())
  BindGadgetEvent(#mfClose, @Exit())
  BindEvent(#PB_Event_CloseWindow, @Exit(), #mf)
  
  ;Boucle 
  Repeat : WaitWindowEvent() : ForEver
EndProcedure

;Fenetre enfant
Procedure chShow()
  OpenWindow(#ch, 0, 0, 400, 300, "Fenetre enfant", #PB_Window_SystemMenu|#PB_Window_ScreenCentered, WindowID(#mf))
  ButtonGadget(#chClose, 300, 20, 80, 22, "Fermer")
  
  ;Declencheurs
  BindGadgetEvent(#chClose, @Exit())
  BindEvent(#PB_Event_CloseWindow, @Exit(), #ch)
EndProcedure

;Fin d'application
Procedure Exit()  
  ;Quelle est la fenêtre qui a crée l'evenement
  Protected Window = EventWindow()
  
  Select Window
    Case #ch
      ;Desactiver les déclencheurs de la fenetre fille
      UnbindGadgetEvent(#chClose, @Exit())
      UnbindEvent(#PB_Event_CloseWindow, @Exit(), #ch)
      
      CloseWindow(#ch)
      
    Case #mf
      End
  EndSelect  
EndProcedure
:idea: Truc & Astuce : Pour indenter ton code (pas celui que je te donne):
1 - Sélectionner tout le code avec Ctrl + a
2 - Indenter le code avec Ctrl + i

:wink:
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Répondre