Compilation et débugger

Sujets variés concernant le développement en PureBasic
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Compilation et débugger

Message par Anonyme2 »

Fred,

j'ai un problème lorsque j'utilise une Callback avec SetWIndowCallBack().

Dans la Callback, je n'ai que ce code :

Code : Tout sélectionner

      Procedure WindowCallBack(WindowID, Message, wParam, lParam)
         ; ReturnValue = CallWindowProc_(WindProc_Origine, Window, Message, wParam, lParam)
         ReturnValue = #PB_ProcessPureBasicEvents
         Select Message
            Case #WM_CTLCOLORSTATIC
               If lparam = GadgetID(#NomFichier_Fenetre_Blanche_Tout_Supprimer) Or lparam = GadgetID(#NomDossier_Fenetre_Blanche_Tout_Supprimer)
                  SetBkMode_(wParam, #TRANSPARENT)
                  SetTextColor_(wParam, $BD4D29)
                  ReturnValue = WhiteBrush
               ElseIf ((lparam = GadgetID(#TextFichier_Fenetre_Tout_Supprimer)) Or (lparam = GadgetID(#TextDossier_Fenetre_Tout_Supprimer)))
                  SetBkMode_(wParam, #TRANSPARENT)
                  SetTextColor_(wParam, #red)
                  ReturnValue = WhiteBrush
               ElseIf lparam = GadgetID(#Frame3D_1_Tout_Supprimer)
                  SetBkMode_(wParam, #TRANSPARENT)
                  SetTextColor_(wParam, #black)
                  ReturnValue = WhiteBrush 
               EndIf
               
         EndSelect
         ProcedureReturn ReturnValue
      EndProcedure
Le problème vient du fait que ces gadgets que je colorie n'existe pas , ils sont créés lorsque j'utilise la fonction de suppression qui ouvre une nouvelle fenêtre et qui crée ces gadgets.

Lorsque je compile, ça plante en disant que les gadgets ne sont pas initialisés mais ça marche impec si je désactive le debugger.

C'est assez ennuyant car je travaille toujours avec le debugger on car on peut afficher pas mal de choses lorsque le code craint un peu :wink:
Fred
Site Admin
Messages : 2652
Inscription : mer. 21/janv./2004 11:03

Message par Fred »

Ouep, faut maintenant utiliser IsGadget() avant, pour tester si le gadget existe ou pas.
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Merci pour l'info :wink:
Répondre