Problème avec ComboBoxGadget
- microdevweb
- Messages : 1802
- Inscription : mer. 29/juin/2011 14:11
- Localisation : Belgique
Re: Problème avec ComboBoxGadget
Ciel est un logiciel de compta, faire un logiciel similaire demanderais de forte connaissance en la matière et doit être approuvé par l'état.
Mais faire un soft de gestion / stock / facturation / caisse etc n'est pas trop difficile.
Mais faire un soft de gestion / stock / facturation / caisse etc n'est pas trop difficile.
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Work at Centre Spatial de Liège
- falsam
- Messages : 7317
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Problème avec ComboBoxGadget
Mais faire un soft de gestion / stock / facturation / caisse etc n'est pas trop difficile.

Dernière modification par falsam le jeu. 16/août/2018 15:11, modifié 1 fois.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Problème avec ComboBoxGadget
Dommage, j'aurais tellement voulu aider
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Un homme doit être poli, mais il doit aussi être libre !
Re: Problème avec ComboBoxGadget
Y'a 6 ou 7 ans, j'ai bossé sur Ciel. La seule valeur de ce programme, c'est son ubiquité tautologique : les gens l'utilisent parce que les gens l'utilisent. Y'a AUCUN effort d'accessibilité fait dessus, jamais eu le moindre test de UX parce que "si les utilisateurs galèrent avec, ça fait plus d'argent au support"...
Re: Problème avec ComboBoxGadget
Mouais, et c'est des gars dans mon genre qui vont debugger 10000 lignes de code parce que tu comprends pas pourquoi après un clearitems() que ton gadget est vide...Micoute a écrit :Attention, je ne sais pas tout faire, mais ne sommes-nous pas sur un forum d'entraide à la programmation en PureBasic ?
ca sera sans moi , je ne veut pas embarqué sur le navire "DreamTeam" avec des capitaines de pédalos... hahaha


il y a 4 pages tu pouvais encore...Dommage, j'aurais tellement voulu aider
Re: Problème avec ComboBoxGadget
Ce que je ferais :Omega a écrit :Je suppose que je dois faire chacune de ces fonctions sous forme de module?
Un fichier Main qui contiens tes includes et ta boucle principla (qui grosso modo devrait être "Repeat : WaitWindowEvent : ForEver".
Un Module "Declare" qui contiendra tes déclaremodule
Un Module "Window" dans lequel tu code l'affichage de ta fenêtre et tu bind tes events
Un Module par "onglet" qui contiens les procédure lié aux events des gadget de son onglet respectif
Un Module Fonction qui regroupe les diversse fonctions pouvant être appelé dans tes onglets
Un Module Database qui lui s'occupe assez logiquement des fonctions ayant accès à ta DB.
Tu ne devrais pas avoir plus de 1000 lignes par include et même si c'est le cas, quelques commentaires et tu devrais t'y retrouver facilement dans ce que tu fais.
Bon courage.
PS : @G-Rom D'un point de vue purement personnel, je trouve ton dernier poste de très mauvais goût et pas mal hors sujet. Personne ne t'as mis un flingue sur la tempe en te disant "DEBUGGGG !!!"
(En espèrant ne pas créer de polémique...)
Re: Problème avec ComboBoxGadget
Non..., pas le temps de me prendre la tête, c'est ton point de vue. juste que micoute ma doucement fait rigolé & que j'ai été light tout le topic... j'ai bien le droit de me lâcher un peu ?boby a écrit : PS : @G-Rom D'un point de vue purement personnel, je trouve ton dernier poste de très mauvais goût et pas mal hors sujet. Personne ne t'as mis un flingue sur la tempe en te disant "DEBUGGGG !!!"
(En espèrant ne pas créer de polémique...)

Pour en revenir à l'auteur du topic, je te tire quand même mon chapeau, tu devrais pouvoir t'en sortir facilement avec tout ce que l'on t'a écrit. car écrire et maintenir un programme comme le tiens, c'est un savoir faire , pas le bon, mais tout de même.
Si tu as des questions , n'hésite pas.
Re: Problème avec ComboBoxGadget
C'est bon c'est débogué. Un petit "Ok" dans le titre alors...
Re: Problème avec ComboBoxGadget
@Falsam
@G-Rom
@Microdevweb:
@Boby:
@G-Rom:
Un module par fonction: merci pour l'info. Ce que j'applique à mes bases de données n'est pas un principe, c'est une obligation, il y a des cas où j'attribue plusieurs tables dans une seule base de données. J'espère que tu sais pourquoi toi qui a l'habitude de travailler sur les bases de données.Excactement. Un module par fonction.
C'est le principe que tu appliques à tes bases de données : Une base par table !!!
Méconnaissance en module : oui (et ça s'explique) mais méconnaissance en bases de données : NON car j'ai utilisé ma 1ère base de données il y a plus de 35 ans, en plus 99% de mes logiciels utilisent des bases de données (environ une centaine de logiciels depuis Hp250, en passant par access etc... jusqu'à aujourdhui Sqlite!) Non désolé Falsam mais tu te trompes énormément là dessus. Ce n'est pas parce que je suis débutant en Pb que tu crois ce que tu crois...Non mais sérieux : C'est du n'importe quoi cette discussion qui démontre ta méconnaissance des bases de données et des modules voir même ta méconnaissance en gestion de projet de développement informatique.
de quoi s'agit il exactement? Quel genre de choses?Quand on travaille pour des clients on ne peut pas se permettre ce genre de chose.
@G-Rom
Ce n'est pas du tout élégant, on dirait que tu n'as jamais fait des erreurs en programmation? si c'est le cas, alors tu es Unique au monde...ouais, et c'est des gars dans mon genre qui vont debugger 10000 lignes de code parce que tu comprends pas pourquoi après un clearitems() que ton gadget est vide...
@Microdevweb:
Pourtant, j'ai développé plusieurs logiciels de comptabilité que des sociétés utilisent officiellement depuis des années et à ce jour. Vu l'ancienneté des programmes, ils ont été développés à l'époque en visual basic et ils sont opérationnels.Ciel est un logiciel de compta, faire un logiciel similaire demanderais de forte connaissance en la matière et doit être approuvé par l'état.
@Boby:
Merci beaucoup Boby, je vais essayer d'appliquerCe que je ferais :
Un fichier Main qui contiens tes includes et ta boucle principla (qui grosso modo devrait être "Repeat : WaitWindowEvent : ForEver".
Un Module "Declare" qui contiendra tes déclaremodule
Un Module "Window" dans lequel tu code l'affichage de ta fenêtre et tu bind tes events
Un Module par "onglet" qui contiens les procédure lié aux events des gadget de son onglet respectif
Un Module Fonction qui regroupe les diversse fonctions pouvant être appelé dans tes onglets
Un Module Database qui lui s'occupe assez logiquement des fonctions ayant accès à ta DB.
Tu ne devrais pas avoir plus de 1000 lignes par include et même si c'est le cas, quelques commentaires et tu devrais t'y retrouver facilement dans ce que tu fais.
Bon courage.
@G-Rom:
Merci G-Rom, j'apprécie et je te remercie beaucoup pour ton aidePour en revenir à l'auteur du topic, je te tire quand même mon chapeau, tu devrais pouvoir t'en sortir facilement avec tout ce que l'on t'a écrit. car écrire et maintenir un programme comme le tiens, c'est un savoir faire , pas le bon, mais tout de même.Si tu as des questions , n'hésite pas.
Win7 (x64) 64 bits Pb 5.72
Re: Problème avec ComboBoxGadget
@omega
Si ton bug est résolu, mets un "Ok" dans le titre.
Et puis t'es au courant qu'il y a du monde pour aider. C'est ça qui est incroyable mais vrai.
Si ton bug est résolu, mets un "Ok" dans le titre.
Et puis t'es au courant qu'il y a du monde pour aider. C'est ça qui est incroyable mais vrai.
Re: Problème avec ComboBoxGadget
Bonsoir Ollivier
La plupart des intervenants m'ont suggéré de changer le plan du code en l'organisant et l'aérant le rendant plus lisible et plus propre (en utilisant les structures, les modules etc...). C'est une bonne chose que j'apprécie beaucoup, d'ailleurs j'ai déjà commencé à travailler dessus... J'ai gardé l'ancien code tel qu'il est (jusqu'à ce que je trouve une explication logique du bug) et j'ai entamé un nouveau code en appliquant les consignes de l'équipe. Dès que je termine ce nouveau code (aéré et propre), je ferais les tests et on verra d'ici là.... ça va quand même me prendre beaucoup de temps...
Tu dis qu'il y a du monde pour m'aider et que cela est incroyable mai vrai??? Qu'est ce qui est incroyable? Moi, personnellement j'ai toujours trouvé de l'aide sur ce forum et la plupart du temps positif et instructif. Donc il y a toujours du monde volontaire ici Dieu merci et je les remercie tous sans exception (même ceux qui ne m'ont pas tout à fait convaincu...)
J'espère trouver le bug bientôt
Le bug n'est pas encore résolu, au contraire, je travaille dessus tous les jours et le problème persiste bizarrement....Si ton bug est résolu, mets un "Ok" dans le titre. Et puis t'es au courant qu'il y a du monde pour aider. C'est ça qui est incroyable mais vrai.
La plupart des intervenants m'ont suggéré de changer le plan du code en l'organisant et l'aérant le rendant plus lisible et plus propre (en utilisant les structures, les modules etc...). C'est une bonne chose que j'apprécie beaucoup, d'ailleurs j'ai déjà commencé à travailler dessus... J'ai gardé l'ancien code tel qu'il est (jusqu'à ce que je trouve une explication logique du bug) et j'ai entamé un nouveau code en appliquant les consignes de l'équipe. Dès que je termine ce nouveau code (aéré et propre), je ferais les tests et on verra d'ici là.... ça va quand même me prendre beaucoup de temps...
Tu dis qu'il y a du monde pour m'aider et que cela est incroyable mai vrai??? Qu'est ce qui est incroyable? Moi, personnellement j'ai toujours trouvé de l'aide sur ce forum et la plupart du temps positif et instructif. Donc il y a toujours du monde volontaire ici Dieu merci et je les remercie tous sans exception (même ceux qui ne m'ont pas tout à fait convaincu...)
J'espère trouver le bug bientôt
Win7 (x64) 64 bits Pb 5.72
Re: Problème avec ComboBoxGadget
Ah... Ce n'est pas résolu?
Ben :
1) poste ton code sur le forum (sans image, sans rien, je n'accède à rien d'autre que les codes source ici)
2) dis clairement ce que tu veux
3) éventuellement, décris ce que tu obtiens d'indésirable
Pour te faire patienter (et te montrer que c'est robuste), tu peux aller tenter de casser ce jouet-là.. C'est un ComboBox un peu plus éditable que la normale...
Ben :
1) poste ton code sur le forum (sans image, sans rien, je n'accède à rien d'autre que les codes source ici)
2) dis clairement ce que tu veux
3) éventuellement, décris ce que tu obtiens d'indésirable
Pour te faire patienter (et te montrer que c'est robuste), tu peux aller tenter de casser ce jouet-là.. C'est un ComboBox un peu plus éditable que la normale...
Re: Problème avec ComboBoxGadget
@Ollivier
2) J'ai déjà précisé clairement ce que j'ai comme problème (voir post n°1)
3) C'est déjà expliqué plusieurs fois plus haut..
1) Je vais te préparer le code plus simplifié (sans image)Ah... Ce n'est pas résolu?
1) poste ton code sur le forum (sans image, sans rien, je n'accède à rien d'autre que les codes source ici)
2) dis clairement ce que tu veux
3) éventuellement, décris ce que tu obtiens d'indésirable
2) J'ai déjà précisé clairement ce que j'ai comme problème (voir post n°1)
3) C'est déjà expliqué plusieurs fois plus haut..
Non, ce jouet n'a rien à voir avec le mien. Je te conseille de lire tous les posts depuis le début pour comprendre mieux mon problème.Pour te faire patienter (et te montrer que c'est robuste), tu peux aller tenter de casser ce jouet-là.. C'est un ComboBox un peu plus éditable que la normale...
Win7 (x64) 64 bits Pb 5.72
Re: Problème avec ComboBoxGadget
Je te demande de méditer sur mon code, et c'est tout.
Notamment cette partie-ci...Si t'as des questions, n'hésite pas.
Tchuss
(Code complet)
Notamment cette partie-ci...
Code : Tout sélectionner
;**********************************************************
Case #PB_EventType_Change
If gState <> -1
\Item = gState
EndIf
Tchuss
(Code complet)
Code : Tout sélectionner
;*************************************************************************************************************************************************************************************************
; (An idea from Fig)
#ComboKeyEnter = 'GK13'
Structure COMBO
Window.I
Gadget.I
Item.I
kMenu.I
kMenuItem.I
ReturnKey.I
EndStructure
Declare ComboReturnKey()
Declare ComboCallBack()
Procedure ComboCreate(Window, Gadget, kMenuItemDefault = 64000)
Define *A.COMBO = AllocateMemory(SizeOf(COMBO) )
With *A
\Window = Window
\Gadget = Gadget
\kMenuItem = kMenuItemDefault
BindEvent(#PB_Event_Gadget, @ComboCallBack(), \Window, \Gadget)
\kMenu = CreateMenu(#PB_Any, WindowID(\Window) )
BindMenuEvent(\kMenu, \kMenuItem, @ComboReturnKey() )
EndWith
ProcedureReturn *A
EndProcedure
Procedure ComboDelete(Gadget)
Define *A.COMBO = GetGadgetData(Gadget)
With *A
UnbindEvent(#PB_Event_Gadget, @ComboCallBack(), \Window, Gadget)
UnbindMenuEvent(\kMenu, \kMenuItem, @ComboReturnKey() )
FreeMemory(*A)
EndWith
EndProcedure
Procedure ComboReturnKey()
PostEvent(#PB_Event_Gadget, GetActiveWindow(), GetActiveGadget(), #PB_EventType_FirstCustomValue, 'GK13')
EndProcedure
Procedure ComboCallBack()
Define Gadget = EventGadget()
Define *A.COMBO = GetGadgetData(Gadget)
Define gState = GetGadgetState(Gadget)
If *A
With *A
Select EventType()
Case #PB_EventType_Focus
AddKeyboardShortcut(\Window, #PB_Shortcut_Return, \kMenuItem)
Case #PB_EventType_LostFocus
RemoveKeyboardShortcut(\Window, #PB_Shortcut_Return)
SetGadgetText(Gadget, GetGadgetItemText(Gadget, \Item) )
Case #PB_EventType_Change
If gState <> -1
\Item = gState
EndIf
Case #PB_EventType_FirstCustomValue
If EventData() = 'GK13'
SetGadgetItemText(Gadget, \Item, GetGadgetText(Gadget) )
EndIf
EndSelect
EndWith
EndIf
EndProcedure
Procedure ComboGadget(Id, x, y, w, h, kMenuItemDefault = 64000)
Define Result
Define Gadget
Result = ComboBoxGadget(Id, x, y, w, h, #PB_ComboBox_Editable)
If Id = #PB_Any
Gadget = Result
Else
Gadget = Id
EndIf
SetGadgetData(Gadget, ComboCreate(GetActiveWindow(), Gadget, kMenuItemDefault) )
ProcedureReturn Result
EndProcedure
Procedure ComboItem(Gadget, Item)
Define *A.COMBO = GetGadgetData(Gadget)
If *A
With *A
SetGadgetState(Gadget, Item)
\Item = Item
EndWith
EndIf
EndProcedure
; Example
If OpenWindow(10, 0, 0, 270, 180, "Combo", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ComboGadget(20, 10, 10, 250, 100)
AddGadgetItem(20, -1, "Option A")
AddGadgetItem(20, -1, "Option B")
AddGadgetItem(20, -1, "Option C")
ComboItem(20, 1)
ComboGadget(21, 10, 42, 250, 101)
AddGadgetItem(21, -1, "Week 1")
AddGadgetItem(21, -1, "Week 2")
AddGadgetItem(21, -1, "Week 3")
ComboItem(21, 2)
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Re: Problème avec ComboBoxGadget
J'avais pas compris que tu était "un vieux" de la prog. si tu arrives à te mettre à la page , je te tire mon chapeau, comme la dit poshu je ne sais plus ou, c'est dur de changé ses mauvaises habitudes. Ma solution de supprimer ton ClearItems() ne suffit pas ?