Problème avec ComboBoxGadget

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
microdevweb
Messages : 1802
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: Problème avec ComboBoxGadget

Message par microdevweb »

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.
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
falsam
Messages : 7317
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Problème avec ComboBoxGadget

Message par falsam »

Mais faire un soft de gestion / stock / facturation / caisse etc n'est pas trop difficile.
:idea: https://www.economie.gouv.fr/cedef/logi ... -certifies (Loi de finance 2018)
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%
Avatar de l’utilisateur
Micoute
Messages : 2583
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Problème avec ComboBoxGadget

Message par Micoute »

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 !
poshu
Messages : 1138
Inscription : sam. 31/juil./2004 22:32

Re: Problème avec ComboBoxGadget

Message par poshu »

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"...
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: Problème avec ComboBoxGadget

Message par G-Rom »

Micoute a écrit :Attention, je ne sais pas tout faire, mais ne sommes-nous pas sur un forum d'entraide à la programmation en PureBasic ?
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...
ca sera sans moi , je ne veut pas embarqué sur le navire "DreamTeam" avec des capitaines de pédalos... hahaha :D
Image
Dommage, j'aurais tellement voulu aider
il y a 4 pages tu pouvais encore...
boby
Messages : 261
Inscription : jeu. 07/juin/2007 22:54

Re: Problème avec ComboBoxGadget

Message par boby »

Omega a écrit :Je suppose que je dois faire chacune de ces fonctions sous forme de module?
Ce 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.

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...)
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: Problème avec ComboBoxGadget

Message par G-Rom »

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...)
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 ? :D et comme tu dit, personne ne ma obligé à quoi que ce soit.

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.
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: Problème avec ComboBoxGadget

Message par Ollivier »

C'est bon c'est débogué. Un petit "Ok" dans le titre alors...
Avatar de l’utilisateur
omega
Messages : 633
Inscription : sam. 26/nov./2011 13:04
Localisation : Alger

Re: Problème avec ComboBoxGadget

Message par omega »

@Falsam
Excactement. Un module par fonction.
C'est le principe que tu appliques à tes bases de données : Une base par table !!!
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.
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.
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...
Quand on travaille pour des clients on ne peut pas se permettre ce genre de chose.
de quoi s'agit il exactement? Quel genre de choses?
@G-Rom
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...
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...
@Microdevweb:
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.
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.
@Boby:
Ce 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.
Merci beaucoup Boby, je vais essayer d'appliquer
@G-Rom:
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.
Merci G-Rom, j'apprécie et je te remercie beaucoup pour ton aide
Win7 (x64) 64 bits Pb 5.72
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: Problème avec ComboBoxGadget

Message par Ollivier »

@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.
Avatar de l’utilisateur
omega
Messages : 633
Inscription : sam. 26/nov./2011 13:04
Localisation : Alger

Re: Problème avec ComboBoxGadget

Message par omega »

Bonsoir Ollivier
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.
Le bug n'est pas encore résolu, au contraire, je travaille dessus tous les jours et le problème persiste bizarrement....
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
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: Problème avec ComboBoxGadget

Message par Ollivier »

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...
Avatar de l’utilisateur
omega
Messages : 633
Inscription : sam. 26/nov./2011 13:04
Localisation : Alger

Re: Problème avec ComboBoxGadget

Message par omega »

@Ollivier
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
1) Je vais te préparer le code plus simplifié (sans image)
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..
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...
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.
Win7 (x64) 64 bits Pb 5.72
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: Problème avec ComboBoxGadget

Message par Ollivier »

Je te demande de méditer sur mon code, et c'est tout.
Notamment cette partie-ci...

Code : Tout sélectionner

;**********************************************************
                                Case #PB_EventType_Change
                                        If gState <> -1
                                                \Item = gState
                                        EndIf
Si t'as des questions, n'hésite pas.

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
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: Problème avec ComboBoxGadget

Message par G-Rom »

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 ?
Verrouillé