Dans le code suivant, je voudrais empêcher de pouvoir cliquer sur l'onglet Client lorsque je clique sur un des boutons de l'onglet 'Master' (Ajouter, Modifier, Supprimer) ou lorsque je clique dans la sous fenêtre de l'onglet Master (Nom du client, No client...)
D'avance, mille merci de votre aide.
Code : Tout sélectionner
version1 = 0
version2 = 0
version3 = 1
#WindowWidth = 1024
#WindowHeight = 768
Global CheminAppli$
Global nbclients
Enumeration
#Fen_1=0; Fenêtre principale
#ProgressBar=3; Barre de progression
#Panel_Gadget=49; Panel Gadget principal (système d'onglets Clients/Master...)
#Calend_Master=100
#Ajout_Ferie=101
#Suppr_Ferie=102
#Bouton_Calend_OK=103
#Bouton_Calend_Cancel=104
#Liste_Client=10
#Liste_Master=40
#Frame_Master_Ferie=50
#Frame_GMaster=60
#Annee_Master=70
#Finmois_Master=71
#Lundi_Master=72
#Mardi_Master=73
#Mercredi_Master=74
#Jeudi_Master=75
#Vendredi_Master=76
#Samedi_Master=77
#Dimanche_Master=78
#TitreNom_Master=80
#TitreAnnee_Master=81
#TitreFinmois_Master=82
#TitreLundi_Master=83
#TitreMardi_Master=84
#TitreMercredi_Master=85
#TitreJeudi_Master=86
#TitreVendredi_Master=87
#TitreSamedi_Master=88
#TitreDimanche_Master=89
#TitreFerie_Master=92
#JoursF_Master=93
#Jours_Ouvres=91
#Master_Ferie=51; fenêtre affichant les jours fériés pour un master
#Ajout_Client=11; Bouton Ajout d'un client
#Ajout_Master=21; Bouton Ajout d'un Master
#Modif_Client=12; Bouton Modification d'un client
#Modif_Master=22
#Suppr_Client=13; Bouton Suppression d'un client
#Suppr_Master=23
#Frame_GClient=17 ; Frame 3D Gadget Ajout/Modification Client
#Frame_Client=30; Frame3D Gadget "Gestion des Clients"
#Nom_Client=14; StringGadget Saisie du Nom du Client
#Nom_Master=52 ; Nom du Master saisi
#Os_Client=15; Choix de l'OS Client
#Sgbd_Client=16; Choix du SGBD Client
#OK_Client=18; Bouton OK Client (Ajout, Modification, Suppression)
#Annuler_Client=19; Bouton Annuler
EndEnumeration;
Structure Client
libcli.s
nocli.w
noos.w
nosgbd.w
EndStructure
Structure master
id_masteri.w
annee.w
finmois.w
libmas.s
lundi.s
mardi.s
mercredi.s
jeudi.s
vendredi.s
samedi.s
dimanche.s
EndStructure
Structure Os
noos.w
libos.s
EndStructure
Structure sgbd
nosgbd.w
libsgbd.s
caracEOL.s
instexec.s
EndStructure
Structure ferie
id_masterf.w
datef.s
EndStructure
Structure jferie
datef.s
EndStructure
NewList Client.Client()
NewList sgbd.sgbd()
NewList master.master()
NewList ferie.ferie()
NewList jferie.jferie()
NewList os.Os()
;/ ***********
;/ * Procédures *
;/ ***********
;- Affiche_Ferie() * Affiche la liste des jours fériés pour un Master donné
Procedure Affiche_Ferie(numero)
ResetList(ferie())
CreateGadgetList(WindowID())
Frame3DGadget(#Frame_Master_Ferie,250,240,120,120,"Jours Fériés")
ListIconGadget(#Master_Ferie,270,260,90,90," Date ",80)
posmas=GetGadgetState(#Liste_Master)
ResetList(master())
SelectElement(master(),posmas)
idm=master()\id_masteri
ResetList(ferie())
While NextElement(ferie())
If idm=ferie()\id_masterf
AddGadgetItem(#Master_Ferie,-1,ferie()\datef);
EndIf
Wend
EndProcedure
;- Gestion_Client()
Procedure Gestion_Client()
If CreateGadgetList(WindowID()); On créée la GadgetList pour afficher les infos
PanelGadget (#Panel_Gadget,50,50,690,320)
AddGadgetItem(#Panel_Gadget,-1,"Clients")
ButtonGadget (#Ajout_Client, 30, 20, 80, 24, "Ajouter") ; Bouton Ajouter
ButtonGadget (#Modif_Client, 30, 70, 80, 24, "Modifier") ; Bouton Modifier
ButtonGadget (#Suppr_Client, 30, 120, 80, 24, "Supprimer") ; Bouton Supprimer
ListIconGadget(#Liste_Client,180,10,390, 150,"Nom du Client",150)
AddGadgetColumn(#Liste_Client, 1, "No Client",65)
AddGadgetColumn(#Liste_Client, 2, "OS",75)
AddGadgetColumn(#Liste_Client, 3, "SGBD",75)
SetGadgetState(#Panel_Gadget,0);
DisableGadget(#Modif_Client,1);
DisableGadget(#Suppr_Client,1);
EndIf
ResetList(Client())
ResetList(os())
ResetList(sgbd())
position=0
nb=0;
While NextElement(Client())
If Client()\nocli>nb; on récupère le max du nocli
nb=Client()\nocli
EndIf
trouve_os=0
ResetList(os())
While NextElement(os()) And trouve_os=0
If os()\noos=Client()\noos
trouve_os=1
libos$=os()\libos; On stocke le libellé dès que trouvé
EndIf
Wend
trouve_sgbd=0
ResetList(sgbd())
While NextElement(sgbd()) And trouve_sgbd=0
If sgbd()\nosgbd=Client()\nosgbd
trouve_sgbd=1
libsgbd$=sgbd()\libsgbd
EndIf
Wend
AddGadgetItem(#Liste_Client,position,Client()\libcli+Chr(10)+Str(Client()\nocli)+Chr(10)+libos$+Chr(10)+libsgbd$);
position=position+1
Wend
noelement=clients;
CloseGadgetList()
ProcedureReturn nb
EndProcedure
;- Gestion_Ferie
Procedure Gestion_Ferie()
EndProcedure
;- Gestion_Master()
Procedure Gestion_Master()
If CreateGadgetList(WindowID()); On créée la GadgetList pour afficher les infos
AddGadgetItem(#Panel_Gadget,-1,"Master")
ListIconGadget(#Liste_Master,180,10,800, 150,"No Master",65)
AddGadgetColumn(#Liste_Master, 1, "Année",55)
AddGadgetColumn(#Liste_Master, 2, "Fin de mois",75)
AddGadgetColumn(#Liste_Master, 3, "Libellé Master",205)
AddGadgetColumn(#Liste_Master, 4, "Lundi",45)
AddGadgetColumn(#Liste_Master, 5, "Mardi",45)
AddGadgetColumn(#Liste_Master, 6, "Mercredi",60)
AddGadgetColumn(#Liste_Master, 7, "Jeudi",45)
AddGadgetColumn(#Liste_Master, 8, "Vendredi",60)
AddGadgetColumn(#Liste_Master, 9, "Samedi",50)
AddGadgetColumn(#Liste_Master, 10, "Dimanche",65)
ButtonGadget(#Ajout_Master, 30, 20, 80, 24, "Ajouter") ; Bouton Ajouter
ButtonGadget(#Modif_Master, 30, 70, 80, 24, "Modifier") ; Bouton Modifier
ButtonGadget(#Suppr_Master, 30, 120, 80, 24, "Supprimer") ; Bouton Supprimer
SetGadgetState(#Panel_Gadget,0);
EndIf
ResetList(master())
position=0
nb=0;
While NextElement(master())
If master()\id_masteri>nb; on récupère le max du nocli
nb=master()\id_masteri
EndIf
DisableGadget(#Modif_Master,1);
DisableGadget(#Suppr_Master,1);
tempo$=Str(master()\id_masteri)+Chr(10)+Str(master()\annee)+Chr(10)+Str(master()\finmois)+Chr(10)+master()\libmas+Chr(10)+master()\lundi+Chr(10)+master()\mardi+Chr(10)
tempo$=tempo$+master()\mercredi+Chr(10)+master()\jeudi+Chr(10)+master()\vendredi+Chr(10)+master()\samedi+Chr(10)+master()\dimanche+Chr(10)
AddGadgetItem(#Liste_Master,position,tempo$);
position=position+1
Wend
noelement=clients;
ProcedureReturn nb
EndProcedure
;- Gestion_Os()
Procedure Gestion_Os()
EndProcedure
;- Gestion_Planning()
Procedure Gestion_Planning()
EndProcedure
;- Gestion_Sgbd()
Procedure Gestion_Sgbd()
EndProcedure
;- Ajout_Master
Procedure ajout_master(master);
EndProcedure
;- Modif_Master () Modification d'un Master et de ses jours fériés
Procedure modif_master(noelement)
EndProcedure
;- Ajout_Client
Procedure Ajout_Client(clients);
EndProcedure;
;- Modif_Client
Procedure Modif_Client(noelement);
EndProcedure
;- Suppr_Client
Procedure Suppr_Client(noelement);
EndProcedure
Procedure Suppr_Master(noelement);
EndProcedure
;- Début du programme
If OpenWindow(#Fen_1, 200, 120, #WindowWidth, #WindowHeight, #PB_Window_MinimizeGadget|#PB_Window_ScreenCentered , "Test v"+Str(version1)+"."+Str(version2)+Str(version3))
;- ******************************************
;- * Chargement des fichiers de paramétrage *
;- ******************************************
maxcli=Gestion_Client()
maxmas=Gestion_Master()
Gestion_Os()
Gestion_Sgbd()
Gestion_Ferie()
Gestion_Planning()
Repeat
EventID=WaitWindowEvent()
If EventID=#PB_EventGadget
Select EventGadgetID()
Case #Liste_Client; Selection Client
Pos = GetGadgetState(#Liste_Client)
If Pos >= 0
DisableGadget(#Ajout_Client,0); On active Ajouter
DisableGadget(#Modif_Client,0); Modifier
DisableGadget(#Suppr_Client,0); Supprimer
noelement=Pos;
EndIf
Case #Ajout_Client;
maxcli=Ajout_Client(maxcli+1);
Case #Modif_Client
Modif_Client(noelement);
Case #Suppr_Client;
maxcli=Suppr_Client(noelement);
Case #Liste_Master; selection Master
Pos = GetGadgetState(#Liste_Master)
If Pos >= 0
DisableGadget(#Ajout_Master,0); On active Ajouter
DisableGadget(#Modif_Master,0); Modifier
DisableGadget(#Suppr_Master,0); Supprimer
noelement=Pos;
Affiche_Ferie(Pos)
EndIf
Case #Ajout_Master
maxmas=ajout_master(maxmas+1)
Case #Modif_Master
modif_master(noelement)
Case #Suppr_Master
maxmas=Suppr_Master(noelement)
EndSelect
EndIf
Until EventID=#PB_EventCloseWindow
EndIf