Problème avec ComboBoxGadget
Re: Problème avec ComboBoxGadget
Bonjour,
www.yaninformatique/omega.zip > tu es sur? A mon avis sans le télécharger ajoute un .com.
Cordialement,
GallyHC
www.yaninformatique/omega.zip > tu es sur? A mon avis sans le télécharger ajoute un .com.
Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Re: Problème avec ComboBoxGadget
Bonsoir Omega.
Tout d'abord, sans commenté ton application ( qui ne resize pas correctement sur mon écran ) , est vraiment mal codée. je ne voudrais pas à avoir à maintenir
cela.
Regarde :

c'est quoi la variable Rc$ ? la variable L1 ? etc ??? tu as du codé au fur & à mesure sans de "plan" et ajouté des features
déjà, et le "bug" viens de là , c'est que ton "numdoc & numdoc$" à été utilisé plusieurs fois pour différentes chose.
donc, cherche par là. sépare tes numdoc$ en fonctions des procédures que tu appelles numdocBC$ <- dans procedure printbc etc...
utilise des structures, aère ton code, car là, c'est l'avc assuré pour la maintenance. pour ma part, je préfère décédé immédiatement que de maintenir ton code ^^
Tout d'abord, sans commenté ton application ( qui ne resize pas correctement sur mon écran ) , est vraiment mal codée. je ne voudrais pas à avoir à maintenir
cela.
Regarde :

c'est quoi la variable Rc$ ? la variable L1 ? etc ??? tu as du codé au fur & à mesure sans de "plan" et ajouté des features
déjà, et le "bug" viens de là , c'est que ton "numdoc & numdoc$" à été utilisé plusieurs fois pour différentes chose.
donc, cherche par là. sépare tes numdoc$ en fonctions des procédures que tu appelles numdocBC$ <- dans procedure printbc etc...
utilise des structures, aère ton code, car là, c'est l'avc assuré pour la maintenance. pour ma part, je préfère décédé immédiatement que de maintenir ton code ^^
Re: Problème avec ComboBoxGadget
Bonsoir GallyHc
Bonsoir G-Rom
C'est vrai que j'ai une longue expérience en développement mais n'empêche que je reste un vrai débutant en Pb G-Rom
J'ai encore beaucoup à apprendre sur pb...
Numdoc et Numdoc$ sont déclarées 2 fois: c'est une erreur involontaire, mais est ce que vraiment à cause de ça que j'ai des problèmes G-Rom? Que veux-tu dire par (utilises des structures? à la place de quoi? et comment?)
Merci pour les remarques et les conseils, je vais essayer de les appliquer...
Effectivement, il faut ajouter un .com (désolé et merci pour la remarque)www.yaninformatique/omega.zip > tu es sur? A mon avis sans le télécharger ajoute un .com.
Bonsoir G-Rom
Tout d'abord, sans commenté ton application ( qui ne resize pas correctement sur mon écran ) , est vraiment mal codée. je ne voudrais pas à avoir à maintenir
C'est vrai que j'ai une longue expérience en développement mais n'empêche que je reste un vrai débutant en Pb G-Rom
J'ai encore beaucoup à apprendre sur pb...
La variable Rc$=N° du Registre de Commerce, L1 étant la 1ère ligne : coordonnée X sur imprimante.c'est quoi la variable Rc$ ? la variable L1 ? etc ??? tu as du codé au fur & à mesure sans de "plan" et ajouté des features déjà, et le "bug" viens de là , c'est que ton "numdoc & numdoc$" à été utilisé plusieurs fois pour différentes chose.
donc, cherche par là. sépare tes numdoc$ en fonctions des procédures que tu appelles numdocBC$ <- dans procedure printbc etc... utilise des structures, aère ton code ...
Numdoc et Numdoc$ sont déclarées 2 fois: c'est une erreur involontaire, mais est ce que vraiment à cause de ça que j'ai des problèmes G-Rom? Que veux-tu dire par (utilises des structures? à la place de quoi? et comment?)
Merci pour les remarques et les conseils, je vais essayer de les appliquer...
Win7 (x64) 64 bits Pb 5.72
Re: Problème avec ComboBoxGadget
@G-Rom
Ai-je mal utilisé le redimensionnement?
Pourquoi la fenêtre ne se redimensionne pas? Pourtant j'utilise les dimensions de l'écranTout d'abord, sans commenté ton application ( qui ne resize pas correctement sur mon écran ) , est vraiment mal codée. je ne voudrais pas à avoir à maintenir...
cela.
Code : Tout sélectionner
ExamineDesktops()
Wlargeur=DesktopWidth(0)
Whauteur=DesktopHeight(0)
OpenWindow(#winmvt, 0,0,0,0, "",#PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_Maximize)
WLar=Wlargeur-30:WHaut=Whauteur-60
PanelGadget(#PanelMvt, 10,10, wlar, WHaut)
Win7 (x64) 64 bits Pb 5.72
Re: Problème avec ComboBoxGadget
@G-Rom
(à toute fin utile)
J'ai enlevé la double déclaration de numdoc$, j'ai retesté le programme, toujours le même problème, donc ça ne provient pas de là...
(à toute fin utile)
J'ai enlevé la double déclaration de numdoc$, j'ai retesté le programme, toujours le même problème, donc ça ne provient pas de là...
Win7 (x64) 64 bits Pb 5.72
Re: Problème avec ComboBoxGadget
Quand je parle de structure, je parle de cela :
Cela t'évite d'avoir 50 milles variables qui partent dans tout les sens. des structures & des listes. idem pour l'application :
C'est plus propre, est on debug plus facilement.
sinon ligne 3198 est ton problème, commente le...
comme ton code est bordélique, tu ne sait plus qui fait quoi et quand. le problème est là.
Code : Tout sélectionner
Structure Produit
denomination.s
reference.s
prix.l
etc.i...
endstructure
Code : Tout sélectionner
Structure Application
windowID.l
gadget[#MAX_GADGET]
etc...
endstructure
global MonApplication.Application
sinon ligne 3198 est ton problème, commente le...
comme ton code est bordélique, tu ne sait plus qui fait quoi et quand. le problème est là.
Re: Problème avec ComboBoxGadget
Voici un squelette fait vite fait pour toi :
use et abuse des bindEvent , compartimente ton code correctement avec des taches simple.
avoir un Event de plus de 1000 ligne faut être maso ^^
Tes produits possède des caractéristique commune, utilise des structures !
pour ton erreur , comme j'ai touché ton code, pas sur de la ligne mais c'est dans la procedure Mvt_AfficherLesCombos()
quand tu clear ton combo après l'avoir rempli...
Code : Tout sélectionner
Enumeration
#MES_GADGETS
#MON_BOUTON
#MAX_GADGET
EndEnumeration
Structure Application
WindowID.i
Gadget.i[#MAX_GADGET]
run.a
...
EndStructure
Global MonApplication.Application
Procedure initialize()
With MonApplication
\WindowID = OpenWindow(...
\Gadget[#MON_BOUTON] = ButtonGadget(...
\run = #True
BindGadgetEvent(\Gadget[#MON_BOUTON] , @faitqqchose() )
...
EndWith
EndProcedure
Procedure handleEvent()
Repeat
event = WindowEvent()
If event = #PB_Event_CloseWindow
MonApplication\run = #False
EndIf
...
Until event = 0
EndProcedure
initialize()
While MonApplication\run
handleEvent()
Wend
avoir un Event de plus de 1000 ligne faut être maso ^^
Tes produits possède des caractéristique commune, utilise des structures !
pour ton erreur , comme j'ai touché ton code, pas sur de la ligne mais c'est dans la procedure Mvt_AfficherLesCombos()
quand tu clear ton combo après l'avoir rempli...
Re: Problème avec ComboBoxGadget
Merci G-Rom pour ces précieuses informations et ce joli code-exemple...
Quant à cette structure Application, je ne pense pas avoir bien compris, j'aurais souhaité (si ce n'est pas trop demandé) de compléter ce bout de code (si c'est possible)
Sinon, il ne me reste plus qu'à te remercier beaucoup pour ces beaux conseils et astuces...
Merci beaucoup G-Rom
Si j'ai bien compris, l'utilisation de la structure va remplacer les variables - produits, c'est ça?Tes produits possède des caractéristique commune, utilise des structures
Code : Tout sélectionner
Structure Application
WindowID.i
Gadget.i[#MAX_GADGET]
run.a
...
EndStructure
Code : Tout sélectionner
With MonApplication
\WindowID = OpenWindow(...
\Gadget[#MON_BOUTON] = ButtonGadget(...
\run = #True
BindGadgetEvent(\Gadget[#MON_BOUTON] , @faitqqchose() )
...
EndWith
Sinon, il ne me reste plus qu'à te remercier beaucoup pour ces beaux conseils et astuces...
Merci beaucoup G-Rom
Win7 (x64) 64 bits Pb 5.72
Re: Problème avec ComboBoxGadget
C'est confirmé ! C'est effectivement un bug de Purebasic !
Voici les preuves:
1. Le même code (copie-coller) a été exécuté sous plusieurs anciennes versions de Pb:
RESULTAT : aucun bug
2. Le même code (copie-coller) a été exécuté sous la version 5.62 de Pb:
RESULTAT : bug
3. Le même problème a été signalé par Gurj, sur le forum PureBasic en anglais : il a confirmé ce que j'ai dit:
Voici le lien : https://www.purebasic.fr/english/viewto ... =4&t=69019
Bon courage à tous
Voici les preuves:
1. Le même code (copie-coller) a été exécuté sous plusieurs anciennes versions de Pb:
RESULTAT : aucun bug
2. Le même code (copie-coller) a été exécuté sous la version 5.62 de Pb:
RESULTAT : bug
3. Le même problème a été signalé par Gurj, sur le forum PureBasic en anglais : il a confirmé ce que j'ai dit:
Voici le lien : https://www.purebasic.fr/english/viewto ... =4&t=69019
Bon courage à tous
Win7 (x64) 64 bits Pb 5.72
Re: Problème avec ComboBoxGadget
Arrête ta mauvaise foi, c'est ton code qui est pourri. et je t'ai dis pourquoi... si tu ne lis pas...omega a écrit :C'est confirmé ! C'est effectivement un bug de Purebasic !
Voici les preuves:
1. Le même code (copie-coller) a été exécuté sous plusieurs anciennes versions de Pb:
RESULTAT : aucun bug
2. Le même code (copie-coller) a été exécuté sous la version 5.62 de Pb:
RESULTAT : bug
3. Le même problème a été signalé par Gurj, sur le forum PureBasic en anglais : il a confirmé ce que j'ai dit:
Voici le lien : https://www.purebasic.fr/english/viewto ... =4&t=69019
Bon courage à tous
j'ai PB 5.60 et ton code ne marche pas...
bref , voila en gros comment il faut faire en place de ce que tu fait :
Code : Tout sélectionner
Enumeration
#ONGLETS
#COMBO_LISTE_1
#COMBO_LISTE_2
#LISTE_STOCK_1
#LISTE_STOCK_2
#BOUTON_AFFICHER
#MAX_GADGET
EndEnumeration
Structure Produit
denomination.s
reference.s
prix.f
stock.i
EndStructure
Structure Application
windowID.l
gadget.l[#MAX_GADGET]
run.a
List MesProduits.Produit()
EndStructure
Global MonLogiciel.Application
Procedure SelectioneProduit() ; Declenche par COMBOBOX 2
REF$ = GetGadgetText( MonLogiciel\gadget[#COMBO_LISTE_2] )
ClearGadgetItems(MonLogiciel\gadget[#LISTE_STOCK_1])
ClearGadgetItems(MonLogiciel\gadget[#LISTE_STOCK_2])
STATE = GetGadgetState(MonLogiciel\gadget[#COMBO_LISTE_2])
SetGadgetState(MonLogiciel\gadget[#COMBO_LISTE_1],STATE)
With MonLogiciel
ForEach \MesProduits() ; utilisation de map serait judicieux, mais c'est pas le sujet...
If REF$ = \MesProduits()\reference
LINE$ = \MesProduits()\denomination + Chr(10) + \MesProduits()\reference + Chr(10) + \MesProduits()\prix + Chr(10) + \MesProduits()\stock
AddGadgetItem(\gadget[#LISTE_STOCK_2],-1,LINE$)
AddGadgetItem(\gadget[#LISTE_STOCK_1],-1,LINE$)
Break
EndIf
Next
EndWith
EndProcedure
Procedure AfficheProduit()
SetGadgetState(MonLogiciel\gadget[#ONGLETS],0)
EndProcedure
Procedure initialize()
With MonLogiciel
\windowID = OpenWindow(#PB_Any,0,0,640,480,"")
\run = #True
\gadget[#ONGLETS] = PanelGadget(#PB_Any,0,0,640,480)
AddGadgetItem(\gadget[#ONGLETS],-1,"Panneau 1")
\gadget[#COMBO_LISTE_1] = ComboBoxGadget(#PB_Any,10,10,256,32)
\gadget[#LISTE_STOCK_1] = ListIconGadget(#PB_Any,10,52,620,380,"denomination",128)
AddGadgetColumn(\gadget[#LISTE_STOCK_1],1,"Reference",128)
AddGadgetColumn(\gadget[#LISTE_STOCK_1],2,"Prix",128)
AddGadgetColumn(\gadget[#LISTE_STOCK_1],3,"Stock",128)
CloseGadgetList()
OpenGadgetList(\gadget[#ONGLETS])
AddGadgetItem(\gadget[#ONGLETS],-1,"Fiche des stocks")
\gadget[#COMBO_LISTE_2] = ComboBoxGadget(#PB_Any,640-266,10,256,32)
\gadget[#LISTE_STOCK_2] = ListIconGadget(#PB_Any,10,52,620,340,"denomination",128)
\gadget[#BOUTON_AFFICHER] = ButtonGadget(#PB_Any,10,410,256,32,"Afficher")
AddGadgetColumn(\gadget[#LISTE_STOCK_2],1,"Reference",128)
AddGadgetColumn(\gadget[#LISTE_STOCK_2],2,"Prix",128)
AddGadgetColumn(\gadget[#LISTE_STOCK_2],3,"Stock",128)
BindGadgetEvent(\gadget[#COMBO_LISTE_2], @SelectioneProduit(), #PB_EventType_Change )
BindGadgetEvent(\gadget[#BOUTON_AFFICHER], @AfficheProduit())
CloseGadgetList()
; on créer des produits bidons...
;
AddElement(\MesProduits())
\MesProduits()\denomination = "Climatisation modele XYZ"
\MesProduits()\reference = "ref-1"
\MesProduits()\prix = 2500.5
\MesProduits()\stock = 2
AddElement(\MesProduits())
\MesProduits()\denomination = "Veineux d'afrique couleur ebène, pour madame."
\MesProduits()\reference = "BOBOCUCU"
\MesProduits()\prix = 69.0
\MesProduits()\stock = 8
AddElement(\MesProduits())
\MesProduits()\denomination = "Carte graphique NVIDIA GTX 45696 20go RAM DDR20"
\MesProduits()\reference = "CG7854-DESDGDS-45435"
\MesProduits()\prix = 899
\MesProduits()\stock = 2
ForEach \MesProduits()
AddGadgetItem(\gadget[#COMBO_LISTE_1],-1,\MesProduits()\reference)
AddGadgetItem(\gadget[#COMBO_LISTE_2],-1,\MesProduits()\reference)
Next
EndWith
EndProcedure
Procedure handleEvent()
Repeat
event = WindowEvent()
If event = #PB_Event_CloseWindow
MonLogiciel\run = #False
EndIf
Until event = 0
EndProcedure
initialize()
While MonLogiciel\run = #True
handleEvent()
Wend
Le but de ce code, c'est juste pour te faire voir quand je change d'onglet, mes combo se comportent comme il le faut. pas de bug, pas de gestion lourde des events dans un switch de la taille du système solaire...
Re: Problème avec ComboBoxGadget
Bonjour G-Rom
Ton code marche bien, il n'y a rien à dire, mais j'avoue qu'il est un peu trop compliqué pour moi, il va falloir que je prenne tout mon temps pour comprendre (mot à mot) ce que tu fais dans chaque ligne... ça va me prendre certainement un temps considérable mais ça vaut quand même la peine.
Je reconnais que mon code est (peut être inutilement) trop volumineux, c'est vrai que je l'ai codé au fur et à mesure.. donc sans aucun plan au préalable... Je vais essayer de le refaire en utilisant les structures comme tu dis.
Cela me sera très utile quand à l'organisation et l'aération de mon code. Tu as raison et je te remercie pour tout. Mais (il y a un MAIS), concernant le bug en question, je ne suis pas tout à fait convaincu, pourquoi ça marche sur Pb4 normalement et sans bug, alors que sur Pb5.62 il y a ce bug ? Je dois préciser que mon programme est opérationnel depuis plus de 6 ans (il a été développé sous Pb4), ce n'est que maintenant (après migration sur Pb5.62) qu'il présente des anomalies ?? Comment expliquer ce phénomène? Je n'ai rien changé à la logique du programme à part la syntaxe ClearGadgetItemList() remplacé par ClearGadgetItems(), Valq() remplacé par Val(), Frame3D remplacé par Frame etc... ).
De toute façon, je vais oublier tout ça puisque personne n'a l'air de me croire ni de me comprendre... Je vais m'occuper maintenant de l'aération de mon code comme tu me l'as conseillé, pour celà, j'aurais besoin de quelques jours de concentration et d'efforts....
Je te remercie beaucoup G-Rom pour tout ce que tu as fait pour moi... C'est très gentil
Merci encore et bonne continuation
Ton code marche bien, il n'y a rien à dire, mais j'avoue qu'il est un peu trop compliqué pour moi, il va falloir que je prenne tout mon temps pour comprendre (mot à mot) ce que tu fais dans chaque ligne... ça va me prendre certainement un temps considérable mais ça vaut quand même la peine.
Je reconnais que mon code est (peut être inutilement) trop volumineux, c'est vrai que je l'ai codé au fur et à mesure.. donc sans aucun plan au préalable... Je vais essayer de le refaire en utilisant les structures comme tu dis.
Cela me sera très utile quand à l'organisation et l'aération de mon code. Tu as raison et je te remercie pour tout. Mais (il y a un MAIS), concernant le bug en question, je ne suis pas tout à fait convaincu, pourquoi ça marche sur Pb4 normalement et sans bug, alors que sur Pb5.62 il y a ce bug ? Je dois préciser que mon programme est opérationnel depuis plus de 6 ans (il a été développé sous Pb4), ce n'est que maintenant (après migration sur Pb5.62) qu'il présente des anomalies ?? Comment expliquer ce phénomène? Je n'ai rien changé à la logique du programme à part la syntaxe ClearGadgetItemList() remplacé par ClearGadgetItems(), Valq() remplacé par Val(), Frame3D remplacé par Frame etc... ).
De toute façon, je vais oublier tout ça puisque personne n'a l'air de me croire ni de me comprendre... Je vais m'occuper maintenant de l'aération de mon code comme tu me l'as conseillé, pour celà, j'aurais besoin de quelques jours de concentration et d'efforts....
Je te remercie beaucoup G-Rom pour tout ce que tu as fait pour moi... C'est très gentil
Merci encore et bonne continuation
Win7 (x64) 64 bits Pb 5.72
- microdevweb
- Messages : 1802
- Inscription : mer. 29/juin/2011 14:11
- Localisation : Belgique
Re: Problème avec ComboBoxGadget
Whaw,
Chapeau à ceux qui on pris la peine de lire ce code, presque 10.000 lignes dans un seul fichier çà c'est ce que l'on appel de programmation structurée. Un tonne de variables Globales, 27 base de données ? au lieux d'une base et 27 tables.
Hé ben si tu arrive à maintenir tout ça chapeau bas
Chapeau à ceux qui on pris la peine de lire ce code, presque 10.000 lignes dans un seul fichier çà c'est ce que l'on appel de programmation structurée. Un tonne de variables Globales, 27 base de données ? au lieux d'une base et 27 tables.
Hé ben si tu arrive à maintenir tout ça chapeau bas
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Work at Centre Spatial de Liège
Re: Problème avec ComboBoxGadget
1) Oui ta fenêtre prend tous l'écran, mais si tu essaie de la déplacer pour la changer d'ecran par exemple, tu te retrouve avec une fenêtre de 0 par 0Omega a écrit :Pourquoi la fenêtre ne se redimensionne pas? Pourtant j'utilise les dimensions de l'écran
Code : Tout sélectionner
OpenWindow(#winmvt, 0,0,0,0, "",#PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_Maximize)
2) Oui ta fenêtre prend tout l'ecran mais on se retrouve avec un énorme vide puisque tu resize ta fenêttre mais pas son contenu, Si tu ne veux pas gérer le resize, le plus simple c'est de ne pas l'autoriser.
Comment veux tu retrouver quoi que ce soit dans un code comme ça ?
Ton code ne compile pas avec EnableExplicite ! donc tu ne déclare pas tes variables = pas bien !
Un code qui atteind un certain volume peut être découpé en plusieurs petits code, utilise les modules ils sont là pour ça !
Pure basic a (enfin) une gestion des event par callback très simple d'utilisation et natif, utilise bindevent ! La boucle select event n'a plus lieu d'exister c'est illisible et ça gonfle le volume d'un code sans aucune raison...
Toutes tes variables sont déclarées en global, pourquoi ? Si tu as besoin de variables pour tes procédures, déclare les à l'intérieur de ta procédure, "protected ou static" (et non define) en fonction du besoin, ça t'évitera de remonter de 5000 lignes pour revoir les variables que tu as déclaré (et ça t'évitera d'avoir 2 global avec le même nom).
Certaines de tes procédures se terminent pas un label pour i fair appel via un goto à l'intérieur même de ta procédure afin d'en sortir... Pourquoi pas "Procedurereturn" ??? c'est plus simple, ça ne prend pas de mémoire et c'est surtout fait pour...
Code : Tout sélectionner
If Val(wJ$)>=1 And Val(wJ$)<=31
Result=1
Else
Result=0
Goto FinIsDate
EndIf

Code : Tout sélectionner
If Val(wJ$)>=1 And Val(wJ$)<=31
Result=1
Else
ProcedureReturn #False
EndIf
Hé bah... tu ne manque pas de gueule au moinsOmega a écrit :Je pense que le code est trop long pour une opération si simple.

La taille de ton code pourais être /2 juste en supprimant les multiples actions totalement innutil :
Code : Tout sélectionner
Structure BrNumdoc
Numdoc.s
EndStructure
Code : Tout sélectionner
Procedure xcm(x.f)
result = x * (PrinterPageWidth()/21) ; 21cm A4
ProcedureReturn result
EndProcedure
Code : Tout sélectionner
Procedure xcm(x.f)
ProcedureReturn x * (PrinterPageWidth()/21) ; 21cm A4
EndProcedure
Code : Tout sélectionner
;Enlever les espaces
wSt$=""
For u=1 To Len(string$)
If Mid(string$,u,1)<>Space(1)
wSt$=wSt$+Mid(string$,u,1)
EndIf
Next u
Code : Tout sélectionner
If CountGadgetItems(#fbl_numdoc)<=0
ClearGadgetItems(#fbl_numdoc)
Code : Tout sélectionner
ForEach (facvNumListe())
numdoc$=facvNumListe()\numdoc
AddGadgetItem(#facv_numdoc,-1,numdoc$)
Next
Code : Tout sélectionner
ForEach (facvNumListe())
AddGadgetItem(#facv_numdoc,-1,facvNumListe()\numdoc)
Next
Certe ça fonctionne, mais pourquoi faire des actions innutil supplémentaire si on peut s'en passer ??
Bref j'en suis rendu ligne 3000 en scrollant un peut au pif et je suis limite de l'AVC donc je vais m'arréter là, mais le seul conseil que je puisse te donner avant de continuer dans ton code : FAIT DU RANGEMENT !!! (Et utilise EnableExplicite au début de TOUS tes codes... Ca t'évitera bien de problèmes...
Re: Problème avec ComboBoxGadget
Bonjour Microdevweb
Le code complet fait plus de 18 000 lignes, c'est un logiciel complet qui est opérationnel depuis plus de 6 ans mais il a été développé sous Pb4, aucun bug jusqu'au jour où j'ai décidé de migrer vers Pb5.62. A partir de ce moment, je commençais à avoir des problèmes, la plupart ont été corrigés, d'autres m'ont obligé à changer de méthode juste pour gagner du temps et maintenant je me retrouve avec ce bug sur le combo...Chapeau à ceux qui on pris la peine de lire ce code, presque 10.000 lignes dans un seul fichier çà c'est ce que l'on appel de programmation structurée.
Toutes ces variables sont indispensables vu le volume exagéré du code, normalUn tonne de variables Globales
Non, j'ai eu beaucoup de problèmes quand j'utilisais plusieurs tables appartenant à une même base de données, surtout sqlite, il y a un conflit au niveau de la syntaxe quand on veut par exemple afficher le nom d'un client à partir de son code fourni par une autre table (facture par exemple)27 base de données ? au lieux d'une base et 27 tables.
Sans aucun problème, j'ai l'habitude de gérer les gros programmes et je sais où aller pour trouver l'adresse de l'erreurHé ben si tu arrive à maintenir tout ça chapeau bas
Win7 (x64) 64 bits Pb 5.72
Re: Problème avec ComboBoxGadget
Bonjour Boby,
C'est une erreur, je ne l'ai pas vu, le test est inutile évidemment
Merci beaucoup pour les remarques et les précieux conseils
Juste une question: Quelle est l'utilité de EnableExplicite (par rapport aux déclarations en Global) ? J'ai lu l'aide mais je ne vois pas vraiment la différence avec Global.
Merci encore
Les variables sont déclarées en Global, est ce une erreur ?Ton code ne compile pas avec EnableExplicite ! donc tu ne déclare pas tes variables = pas bien !
C'est quoi un module? (includefile?)Un code qui atteind un certain volume peut être découpé en plusieurs petits code, utilise les modules ils sont là pour ça !
C'est la première fois que je vois ça, G-Rom aussi m'a conseillé cette méthode (bindevent) je vais essayer de l'appliquer et la comprendre d'abords[/quote]Pure basic a (enfin) une gestion des event par callback très simple d'utilisation et natif, utilise bindevent ! La boucle select event n'a plus lieu d'exister c'est illisible et ça gonfle le volume d'un code sans aucune raison...
C'est pour éviter les conflits: une variable déclarée en global garde sa valeur dans tout le programme. Mais si c'est utile, je vais peut être les utiliser à l'intérieur des procédures...Toutes tes variables sont déclarées en global, pourquoi ? Si tu as besoin de variables pour tes procédures, déclare les à l'intérieur de ta procédure, "protected ou static" (et non define) en fonction du besoin, ça t'évitera de remonter de 5000 lignes pour revoir les variables que tu as déclaré (et ça t'évitera d'avoir 2 global avec le même nom).
Code : Tout sélectionner
If CountGadgetItems(#fbl_numdoc)<=0
ClearGadgetItems(#fbl_numdoc)
Merci beaucoup pour les remarques et les précieux conseils
Juste une question: Quelle est l'utilité de EnableExplicite (par rapport aux déclarations en Global) ? J'ai lu l'aide mais je ne vois pas vraiment la différence avec Global.
Merci encore
Win7 (x64) 64 bits Pb 5.72