Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| BDR.dll: utilisation simultanée avec KGF.dll | |
| | Auteur | Message |
---|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: BDR.dll: utilisation simultanée avec KGF.dll Sam 20 Avr 2013 - 13:53 | |
| Panoramic limite l'accès aux DLLs à une seule DLL à chaque instant donné. On ne peut donc pas ouvrir simultanément KGF.dll et BDR.dll. Or, KGF.dll contient des fonctions permettant de contourner cette limitation. Il s'agit des fonctions de chargement dynamique de DLLs. Grâce à un travail soigneux de Ygeronimi, j'ai mis en ligne maintenant une version permettant d'utiliser BDR.dll alors qu'on a KGF.dll en activité simultanément. Pour cela, j'ai mis en place une version modifiée de BDR_SUB.bas. C'est le fichier BDR_pour_KGF_SUB.bas. Ce module (à utiliser à la place de BDR_SUB.bas) permet d'utiliser toutes les procédures de BDR_SUB.bas, de façon transparente, en même temps que les procédures de KGF_SUB.bas. Modules ajoutés: BDR_pour_KGF_SUB.basModules modifiés: aucunDocumentation modifiée: BDR.chm, BDR.doc, BDR.pdf, lisez-moi.txtBref mode d'emploi: - Code:
-
... KGF_initialize("KGF.dll") : ' ouverture de KGF.dll d'abord BDRinitialize("BDR.dll") : ' ouverture de BDR.dll ensuite ... #INCLUDE "KGF_SUB.bas" #INCLUDE "BDR_pour_KGF_SUB.bas"
Dernière édition par Klaus le Sam 20 Avr 2013 - 20:48, édité 1 fois | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: BDR.dll: utilisation simultanée avec KGF.dll Sam 20 Avr 2013 - 15:14 | |
| Klaus est toujours efficace même avec son utilisation similtanée des DLL ! Pardon Klaus, ça devient une habitude chez moi! | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 20 Avr 2013 - 15:44 | |
| Bizarre, bizarre... J'aurai pensé qu'il te serait plus facile d' assembler les deux dlls en une... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: BDR.dll: utilisation simultanée avec KGF.dll Sam 20 Avr 2013 - 20:54 | |
| @Papydall Merci pour ta vigilance ! C'est corrigé, bien que ce fut drôlr...
@Ygeronimi: Effectivement, ce n'est pas compliqué d'intégrer BDR.dll dans KGF.dll. Je vais y réfléchir, et je pense que ce sera prêt pour la semaine prochaine.
En attendant, j'ai beaucoup apprécié ta façon de modifier BDR_SUB.bas pour pouvoir l'utiliser avec les fonctions de chargement dynamique de DLLs, et j'ai ajouté cela aux possibilités du logiciel. Et même si j'intègre BDR dans KGF, cela restera comme un modèle d'intégration de DLLs externes. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 20 Avr 2013 - 21:05 | |
| Je ne sais pas si c'est vraiment ce qu'il fallait faire car j'ai fermé quelque temps panoramice et je viens de le ré ouvrir
là , Surprise !!!, même plus il me créé la base ( les fichiers) la base reste fermée.
cf mon dernier post dans lBDR et memo invisible avec le lien.
je vais donc attendre un peu avant d'accepter ce joli bouquet de roses qui me ferait si plaisir si cela fonctionnait.
En tout cas merci | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: BDR.dll: utilisation simultanée avec KGF.dll Sam 20 Avr 2013 - 21:32 | |
| Il y a quelques petites anomalies dans ton source, et je suis en train de les pister.
Ce qui est sûr, c'est que rien n'est écrit physiquement dans la base parce que tu ne fais nulle part BDRsave() ou BDRclose(). Tant que ce n'est pas fait, tout reste en mémoire, dans la DLL.
Je te donnerai bientôt une version qui évite tous ces écueils. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| | | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: BDR.dll: utilisation simultanée avec KGF.dll Sam 20 Avr 2013 - 22:09 | |
| Mais ça ouvre ! Pas de problème ! J'ai adapté ton programme pour utilisation simultané de KGF.dll et BDR.dll, avec KGF_SUB.bas et BDR_pour_KGF_SUB.bas. J'ai ajouté on on_close 0 pour faire le BDRclose(à, ce qui écrit tout sur disque. Automatiquement au prochain lancement, tout ce qui était présent avant est relu. L'ouverture marche bien. Comme il n'y avait aucun lad, j'ai voulu faire Listes\Lads, puis "+" pour ajouter un lad. Mais dans la routine click, lce cas n'était pas codé. J'ai donc ajouté l'appel d'une procédure AjoutLadKlaus(L$,Obj%) qui ajoute un lad dans la BDR, le colle dans l'ensemble lads, puis met à jour la liste des lads à l'écran. Si ensuite tu sors du programme et tu le lances à nouveau, le lad est présent - tout va bien. Il faut faire le même principe pour les stations, pour les chevaux, ... A la fin de la fonction Init_Grid(), j'ai désactivé la ligne Affiche_effectif("Général"). Il doit y avoir un problème avec ça - à voir. Toutes les modifs sont marquées par un commentaire : ' Klaus Tous les ajouts sont marqués par un commentaire : ' (+) Klaus Toutes les suppressions sont marquées par un commentaire : ' (-) Klaus Voici Source_Ecurie.bas: - Code:
-
' ****************************************************************************** ' * BDD PLANNING ECURIE * ' * ------------------- * ' * Créé par * ' * Yannick GERONIMI * ' * avec * ' * PANORAMIC 0.9.24 * ' ******************************************************************************
Variables() Constantes() Labels() Interface() Init_Dlls() Init_Base() Init_Listes() Init_Grid() end ' ****************************************************************************** ' * DECLARATIONS * ' ****************************************************************************** Sub Variables() Dim Clic%, DClic% Dim NJ% Dim hnd_dll1%,hnd_dll2%,res1% Dim C%,L% End_Sub
Sub Constantes() Dim Path$,Dll$,Img$,KGFdll$,BDRdll$,YGFdll$ Dim bdr$,syst1$,syst2$,Cheval$,Lad$,Site$,Trav$,Dat$,Activ$ Path$ =Dir_current$+"\" Dll$ =Path$+"Dlls\" Img$ =Path$+"Img\" KGFdll$=Dll$+"KGF.dll" BDRdll$=Dll$+"BDR.dll" YGFdll$=Dll$+"YGF.dll" ' constantes liées à la bdr bdr$ = path$+"Ecurie.nam" syst1$ = "est_soigné_par" syst2$ = "est_stationné_à" Cheval$= "Cheval" Lad$ = "Lads" Site$ = "Sites" Trav$ = "Travail" Dat$ = "Date" Activ$ = "Activité" End_Sub
Sub Labels() Label Clic,DClic End_Sub ' ****************************************************************************** ' * GENERAL USER INTERFACE * ' ******************************************************************************
' ________________________________________________________________________FORM 0 Sub Interface() ' Définition du form 0 O_Form(0,0,1,0,0,600,1000,"Planning Ecurie") font_name 0,"arial" label close0 : on_close 0,close0 : ' (+) Klaus ' Définition du menu O_Main_menu(1,0) O_Sub_Menu(2,1,"Fichier",0,1) O_Sub_Menu(3,1,"Listes",0,1) O_Sub_Menu(4,1,"Etats",0,1) O_Sub_Menu(5,1,"Affichage",0,1) O_Sub_Menu(6,1,"A Propos",1,1) O_Sub_Menu(7,1,"Aide",1,1) O_Sub_Menu(8,2,"Nouvelle Fiche",1,1) O_Sub_Menu(9,2,"Modifier une fiche",1,1) O_Sub_Menu(10,2,"Supprimer une fiche",1,1) O_Sub_Menu(11,3,"Lads",1,1) O_Sub_Menu(12,3,"Stations",1,1) O_Sub_Menu(13,4,"Chevaux / Lad",1,1) O_Sub_Menu(14,4,"Chevaux / Station",1,1) O_Sub_Menu(15,5,"Général",1,1) O_Sub_Menu(16,5,"Par Site",1,1) ' Objets invisible O_Memo(31,0,0,0,0,500,500,"") :' Memo liste général O_Memo(32,0,0,0,0,500,500,"") :' liste des chevaux O_Memo(33,0,0,0,0,500,500,"") :' liste des lads O_Memo(34,0,0,0,0,500,500,"") :' liste des sites O_Memo(35,0,0,0,0,500,500,"") :' liste des Travails O_Memo(36,0,0,0,0,500,500,"") :' liste des dates O_Memo(37,0,0,0,0,500,500,"") :' liste des Activités O_Memo(38,0,0,0,0,500,500,"") :' Memo relation lad-cheval O_Memo(39,0,0,0,0,500,500,"") :' Memo affichage du grid ' Grid d'affichage du planning O_Grid(30,0,0,0,0,height(0)-208,Width(0)-16) On_Double_Click 30,DClic On_Click 30,Clic ' Affichage de la selection sur grid O_Alpha(50,0,1,height(30),0,0,0,string$(246," ")) color 50,0,0,255 : font_size 50,10:font_bold 50:font_color 50,245,245,10 O_Alpha(51,0,1,height(30)+30,20,0,0,"Cheval") font_name 51,"Times new roman":font_size 51,12 O_Alpha(52,0,1,height(30)+50,40,0,0,"Lad") font_italic 52:font_color 52,0,0,255:font_size 52,10 O_Memo(53,0,1,height(30)+16,400,134,584,""):bar_vertical 53 End_Sub
' ___________________________________________FORM AJOUT MODIFIER SUPPRIMER FICHE Sub F_Fiche(Mode%) Dim_Local res%,hnd%,flag%,x% If Object_exists(100)=0 O_Form(100,0,1,0,0,205,450,""):font_name 100,"arial" hnd%=handle(100):flag%=1 O_Container(101,100,0,0,5,height(100)-43,width(100)-216,"") O_Alpha(104,101,1,10,10,0,0,"Nom du cheval") O_Edit(105,101,1,25,10,0,160,"",0) O_Alpha(106,101,1,50,10,0,0,"Lad") O_Combo(107,101,1,65,10,0,160,"",1) O_Alpha(108,101,1,90,10,0,0,"Station") O_Combo(109,101,1,105,10,0,160,"",1) O_Button_Picture(110,7001,101,0,1,top(107)-2,180,25,25,Img$+"On_AddDataBase.jpg",Img$+"Out_AddDataBase.jpg") O_Button_Picture(112,7003,101,0,1,top(109)-2,180,25,25,Img$+"On_AddDataBase.jpg",Img$+"Out_AddDataBase.jpg") O_Container(102,100,0,0,5,height(100)-43,width(100)-216,"") O_Alpha(114,102,1,10,10,0,0,"Nom du cheval") O_Combo(115,102,1,25,10,0,160,"",1) O_Alpha(116,102,1,50,10,0,0,"Lad") O_Combo(117,102,1,65,10,0,160,"",1) O_Alpha(118,102,1,90,10,0,0,"Station") O_Combo(119,102,1,105,10,0,160,"",1) O_Button_Picture(120,7005,102,0,1,top(107)-2,180,25,25,Img$+"On_AddDataBase.jpg",Img$+"Out_AddDataBase.jpg") O_Button_Picture(122,7007,102,0,1,top(109)-2,180,25,25,Img$+"On_AddDataBase.jpg",Img$+"Out_AddDataBase.jpg") O_Container(103,100,0,0,5,height(100)-43,width(100)-216,"") O_Alpha(124,103,1,10,10,0,0,"Nom du cheval") O_Combo(125,103,1,25,10,0,160,"",1) O_Alpha(126,103,1,50,10,0,0,"Lad") O_Edit(127,103,1,65,10,0,160,"",0) O_Alpha(128,103,1,90,10,0,0,"Station") O_Edit(129,103,1,105,10,0,160,"",0) O_Button_Picture(130,7025,103,0,1,height(103)-32,200,25,25,Img$+"On_DeleteDataBase.jpg",Img$+"Out_DeleteDataBase.jpg") Else Show 100 End_if if Mode%=1 caption 100,"Nouvelle fiche" for x%=101 to 103:hide x%:next x% show Mode%+100 RempCombo(107,33) :RempCombo(109,34) end_if if Mode%=2 caption 100,"Modifier une fiche" for x%=101 to 103:hide x%:next x% show Mode%+100 RempCombo(115,32) :RempCombo(117,33) :RempCombo(119,34) end_if if Mode%=3 caption 100,"Supprimer une fiche" for x%=101 to 103:hide x%:next x% show Mode%+100 RempCombo(125,32) end_if res%=dll_call2("WindowTopMost",hnd%,flag%) End_Sub
' ____________________________________________________________________FORM LISTE Sub F_Liste(Mode%) Dim_Local res%,flag%,hnd% If Object_exists(200)=0 O_Form(200,0,1,0,0,340,250,"") hnd%=handle(200) :flag%=1 O_Container(201,200,0,0,5,height(200)-43,width(200)-26,"") O_List(202,201,1,5,0,250,width(200)-27,"",1) O_Edit(203,201,1,260,5,0,160,"",0) O_Button_Picture(204,7017,201,0,1,top(203)-2,167,25,25,Img$+"On_AddDataBase.jpg",Img$+"Out_AddDataBase.jpg") O_Button_Picture(206,7019,201,0,1,top(203)-2,195,25,25,Img$+"On_DeleteDataBase.jpg",Img$+"Out_DeleteDataBase.jpg") O_Container(208,200,0,0,5,height(200)-43,width(200)-26,"") O_List(209,208,1,5,0,250,width(200)-27,"",1) O_Edit(210,208,1,260,5,0,160,"",0) O_Button_Picture(211,7021,208,0,1,top(203)-2,167,25,25,Img$+"On_AddDataBase.jpg",Img$+"Out_AddDataBase.jpg") O_Button_Picture(213,7023,208,0,1,top(203)-2,195,25,25,Img$+"On_DeleteDataBase.jpg",Img$+"Out_DeleteDataBase.jpg") Else Show 200 End_if if Mode%=1 clear 33 : ' (+) Klaus clear 202 : ' (+) Klaus BDRlistset(Lad$,33) : ' (+) Klaus RempCombo(202,33) : ' (+) Klaus caption 200,"Lads":hide 208: show 201 else caption 200,"Stations":hide 201:show 208 end_if res%=dll_call2("WindowTopMost",hnd%,flag%) End_Sub
' _____________________________________________________________________FORM ETAT Sub F_Etat(Mode%) Dim_Local res%,flag%,hnd% If Object_exists(250)=0 O_Form(250,0,1,0,0,600,400,"") hnd%=handle(250) :flag%=1 O_Memo(251,250,1,0,0,height(250)-68,width(250)-16,"") O_Button_Picture(252,7015,250,0,1,height(251)+2,Width(250)-43,25,25,Img$+"On_PrintButton.jpg",Img$+"Out_PrintButton.jpg") Else Show 250 End_if if mode%=1 :caption 250,"Etat [ Chevaux / Lad ]":end_if if mode%=2 :caption 250,"Etat [ Chevaux / Station ]":end_if res%=dll_call2("WindowTopMost",hnd%,flag%) End_Sub
' __________________________________________________________FORM CHOIX AFFICHAGE Sub F_ChoixAffichage() Dim_Local res%,flag%,hnd% If Object_exists(300)=0 O_Form(300,0,1,0,0,80,250,"Choix du site") O_Combo(301,300,1,10,10,0,180,"",1) O_Button_Picture(302,7009,300,0,1,top(301)-2,200,25,25,Img$+"On_ValidButton.jpg",Img$+"Out_ValidButton.jpg") hnd%=handle(300) :flag%=1 Else Show 300 End_if res%=dll_call2("WindowTopMost",hnd%,flag%) End_Sub
' ______________________________________________________FORM CHOIX 2XCLIC / GRID Sub Ss_MenuGrid() Dim_Local x%,y%,res%,flag%,hnd% if Object_exists(350)=0 O_Form(350,0,1,0,0,380,600,"Menu"):font_name 350,"arial" hnd%=handle(350) :flag%=1 O_Alpha(351,350,1,10,10,0,0,"Travail à effectuer") O_Combo(352,350,1,25,10,0,80,"",1) O_Check(353,350,1,60,10,0,0,"Consignes") O_Memo(354,350,1,80,10,100,width(350)-36,""):bar_vertical 354 O_Check(355,350,1,190,10,0,0,"Commentaires") O_Memo(356,350,1,210,10,100,width(350)-36,""):bar_vertical 356 O_Button_Picture(357,7011,350,0,1,top(352)-2,100,25,25,Img$+"On_AddDataBase.jpg",Img$+"Out_AddDataBase.jpg") else Show 350 end_if RempCombo(352,35) res%=dll_call2("WindowTopMost",hnd%,flag%) End_Sub
' ________________________________________________________________FORM AJOUT LAD Sub F_AjoutLad() Dim_Local x%,y%,res%,flag%,hnd% If Object_Exists(400)=0 O_Form(400,0,1,0,0,80,250,"Ajouter un lad") hnd%=handle(400) :flag%=1 O_Combo(401,400,1,10,10,0,180,"",1) O_Button_Picture(402,7013,400,0,1,top(401)-2,200,25,25,Img$+"On_AddDataBase.jpg",Img$+"Out_AddDataBase.jpg") else show 400 end_if RempCombo(401,33) res%=dll_call2("WindowTopMost",hnd%,flag%) End_Sub
' _________________________________________________________________FORM A PROPOS Sub F_APP() Dim_Local x%,y%,res%,flag%,hnd% If Object_Exists(450)=0 O_Form(450,0,1,0,0,350,500,"A Propos...") hnd%=handle(450) :flag%=1 Else Show 450 End_if res%=dll_call2("WindowTopMost",hnd%,flag%) End_Sub
' ****************************************************************************** ' * INIT DLL * ' ****************************************************************************** Sub Init_Dlls() ' Dim_Local fonction$ ' (-) Klaus Dll_On KGFdll$ KGF_initialize(KGFdll$) : ' (+) Klaus hnd_dll1%=dll_call1("LoadDLL",adr(YGFdll$)) ' les deux lignes suivantes n'ont pas de sens ici: ' fonction$="NbJours" ' res1%=dll_call2("TargetDLL",hnd_dll1%,adr(fonction$)) ' hnd_dll2%=dll_call1("LoadDLL",adr(BDRdll$)) BDRinitialize(BDRdll$) : ' (+) Klaus End_Sub
Sub Init_Base() Dim_Local i% BDRstatus() if BDRstatus=1 then BDRclose() BDRopen(bdr$) caption 0,"Mon Ecurie - ["+file_extract_name$(bdr$)+"]" BDRlistallentities(31) if BDRlistallentities=0 if dir_exists("Commentaires")=0 :dir_make dir_current$+"\Commentaires":end_if BDRadd(syst1$,"") BDRadd(syst2$,"") BDRadd(Cheval$,"") BDRadd(Lad$,"") BDRadd(Site$,"") BDRadd(Trav$,"") BDRadd(Dat$,"") End_if End_Sub ' ****************************************************************************** ' * INIT GRID * ' ****************************************************************************** Sub Init_Grid() Dim_Local x%,x$,An%,NC%,Nbj%,deb%,fin%,D$,c$ ' Détermination du nombre de jours de l'année en cours An%=right$(Date$,4) If Frac(An%/4)>0 or (Frac(An%/100)>0 and Frac(An%/400)>0) NJ%=366 else NJ%=365 End_If NC%=NJ%+2 Grid_Column 30,NC% if count(31)>0:Grid_Row 30,count(31)+1:Else:Grid_Row 30,count(31)+2:end_if Grid_column_fixed 30,2 :Grid_row_fixed 30,1 Grid_row_height 30,20 :Grid_column_width 30,60 Grid_one_column_width 30,1,100 :Grid_one_column_width 30,2,80 ' affichage des entêtes de colonnes Grid_write 30,1,1,"---- Chevaux ----" Grid_write 30,1,2,"---- Lads ----" ' affichage des dates ' janvier Nbj%=2 for x%=1 to 31 if len(str$(x%))<2 :x$="0"+str$(x%):else:x$=str$(x%):end_if D$=x$+"/01/2013" grid_write 30,1,x%+Nbj%,D$ BDRsetelement(D$,Dat$) next x% ' février Nbj%=Nbj%+31 if NJ%=365:fin%=28:else:fin%=29:end_if for x%=1 to fin% if len(str$(x%))<2 :x$="0"+str$(x%):else:x$=str$(x%):end_if D$=x$+"/02/2013" grid_write 30,1,x%+Nbj%,D$ BDRsetelement(D$,Dat$) next x% ' mars Nbj%=Nbj%+fin% for x%=1 to 31 if len(str$(x%))<2 :x$="0"+str$(x%):else:x$=str$(x%):end_if D$=x$+"/03/2013" grid_write 30,1,x%+Nbj%,D$ BDRsetelement(D$,Dat$) next x% ' avril Nbj%=Nbj%+31 for x%=1 to 30 if len(str$(x%))<2 :x$="0"+str$(x%):else:x$=str$(x%):end_if D$=x$+"/04/2013" grid_write 30,1,x%+Nbj%,D$ BDRsetelement(D$,Dat$) next x% ' mai Nbj%=Nbj%+30 for x%=1 to 31 if len(str$(x%))<2 :x$="0"+str$(x%):else:x$=str$(x%):end_if D$=x$+"/05/2013" grid_write 30,1,x%+Nbj%,D$ BDRsetelement(D$,Dat$) next x% ' juin Nbj%=Nbj%+31 for x%=1 to 30 if len(str$(x%))<2 :x$="0"+str$(x%):else:x$=str$(x%):end_if D$=x$+"/06/2013" grid_write 30,1,x%+Nbj%,D$ BDRsetelement(D$,Dat$) next x% ' juillet Nbj%=Nbj%+30 for x%=1 to 31 if len(str$(x%))<2 :x$="0"+str$(x%):else:x$=str$(x%):end_if D$=x$+"/07/2013" grid_write 30,1,x%+Nbj%,D$ BDRsetelement(D$,Dat$) next x% ' aout Nbj%=Nbj%+31 for x%=1 to 31 if len(str$(x%))<2 :x$="0"+str$(x%):else:x$=str$(x%):end_if D$=x$+"/08/2013" grid_write 30,1,x%+Nbj%,D$ BDRsetelement(D$,Dat$) next x% ' septembre Nbj%=Nbj%+31 for x%=1 to 30 if len(str$(x%))<2 :x$="0"+str$(x%):else:x$=str$(x%):end_if D$=x$+"/09/2013" grid_write 30,1,x%+Nbj%,D$ BDRsetelement(D$,Dat$) next x% ' octobre Nbj%=Nbj%+30 for x%=1 to 31 if len(str$(x%))<2 :x$="0"+str$(x%):else:x$=str$(x%):end_if D$=x$+"/10/2013" grid_write 30,1,x%+Nbj%,D$ BDRsetelement(D$,Dat$) next x% ' novembre Nbj%=Nbj%+31 for x%=1 to 30 if len(str$(x%))<2 :x$="0"+str$(x%):else:x$=str$(x%):end_if D$=x$+"/11/2013" grid_write 30,1,x%+Nbj%,D$ BDRsetelement(D$,Dat$) next x% ' decembre Nbj%=Nbj%+30 for x%=1 to 31 if len(str$(x%))<2 :x$="0"+str$(x%):else:x$=str$(x%):end_if D$=x$+"/12/2013" grid_write 30,1,x%+Nbj%,D$ BDRsetelement(D$,Dat$) next x% ' (-) Klaus Affiche_effectif("Général") show 30 End_Sub
' ****************************************************************************** ' * MENU * ' ******************************************************************************
' ___________________________________________________________________SIMPLE CLIC Clic: Clic%=Number_Click Select Clic% case 6 :F_APP() case 7 :Message "Aide.chm" ' Menu Fichier case 8 :F_Fiche(1) case 9 :F_Fiche(2) case 10 :F_Fiche(3) ' Menu Liste case 11 :F_Liste(1) case 12 :F_Liste(2) ' Menu Etat case 13 :F_Etat(1) case 14 :F_Etat(2) ' Menu Affichage case 15 :Affiche_effectif("Général") case 16 :F_ChoixAffichage() ' Grid cases travail case 30 :Select_cell()
' Fenêtre Fiche case 110:AjoutLad(Text$(107),107) case 112 case 120:AjoutLad(Text$(117),117) case 122 case 130 ' Fenêtre Liste case 204 : AjoutLadKlaus(text$(203),202) : ' Klaus case 206 case 211 : message "On veut ajouter une station" : ' KLaus case 213 ' Fenêtre Visu Etat case 252 ' Fenêtre Choix affichage case 302:Affiche_effectif(text$(301)) ' Fenêtre ss menu grid case 357 ' Fenêtre Ajout Lad case 402
' ____________________________________________________________BOUTONS INVISIBLES ' fenêtre fiche case 7001 :show 110 case 7002 :hide 110 case 7003 :show 112 case 7004 :hide 112 case 7005 :show 120 case 7006 :hide 120 case 7007 :show 122 case 7008 :hide 122 case 7025 :show 130 case 7026 :hide 130 ' fenêtre choix affichage case 7009 :show 302 case 7010 :hide 302 ' fenêtre ss menu grid case 7011 :show 357 case 7012 :hide 357 ' fenêtre Ajout lad case 7013 :show 402 case 7014 :hide 402 ' fenêtre Etat case 7015 :show 252 case 7016 :hide 252 ' fenêtre Liste mode 1 case 7017 :show 204 case 7018 :hide 204 case 7019 :show 206 case 7020 :hide 206 ' fenêtre Liste mode 2 case 7021 :show 211 case 7022 :hide 211 case 7023 :show 213 case 7024 :hide 213 End_Select return
' Sélection de la cellule du grid Sub Select_cell() L%=grid_y_to_row(30,mouse_y_position(30)) C%=grid_x_to_column(30,mouse_x_position(30)) Caption 50,string$(115," ")+Grid_read$(30,1,C%)+string$(115," ") Caption 51,Grid_read$(30,L%,1) Caption 52,Grid_read$(30,L%,2) End_Sub
' ___________________________________________________________________DOUBLE CLIC DClic: DClic%=Number_Double_Click L%=grid_y_to_row(30,mouse_y_position(30)) C%=grid_x_to_column(30,mouse_x_position(30)) If DClic%=30 if C%>2 and L%>1:Ss_MenuGrid():end_if if C%=1 and L%=1:F_Fiche(1):end_if if C%=2 and L%=1:F_AjoutLad():end_if End_if return
' ___________________________________________________________________Sortie (+) Klaus Close0: BDRclose() return
' ****************************************************************************** ' * INCLUDES * ' ****************************************************************************** #include "Fonctions.bas" ' (-) Klaus #include "BDR_SUB.bas" #include "Ecurie_Lib.bas" ' (+) Klaus ajout des 2 lignes suivantes #include "KGF_SUB.bas" #include "BDR_pour_KGF_SUB.bas"
Et voici Fonctions.bas": - Code:
-
' ****************************************************************************** ' * FONCTIONS * ' ******************************************************************************
' _____________________________________________________INITIALISATION DES LISTES Sub Init_Listes() BDRlistset(Cheval$,32) BDRlistset(Lad$,33) BDRlistset(Site$,34) BDRlistset(Trav$,35) BDRlistset(Dat$,36) BDRlistset(Activ$,37) End_Sub
' ________________________________________________________AFFICHAGE DANS LE GRID Sub Affiche_effectif(Typ$) Dim_Local x%,NR%,C$ if Count(39)>0:For x%=2 To Count(39):Grid_row_delete 30,x% :Next x% :End_if Clear 39 If Typ$="Général" For x%=1 to count(32):C$=Item_read$(32,x%):Item_add 39,C$:Next x% Else BDRfindrelation("?",syst2%,Typ$,39) End_if NR%=Count(39)+1:Grid_column 30,NR% for x%=1 to Count(39) C$=Item_Read$(39,x%) BDRfindrelation(C$,syst1$,"?",38) Grid_write 30,x%+1,1,C$ Grid_write 30,x%+1,2,Item_read$(38,1) Clear 38 next x% End_Sub
' ________________________________________________________________________AJOUTS Sub AjoutLad(L$,Obj%) Dim_Local nobj%,T$ nobj%=Obj% :T$=L$ BDRsetelement(T$,Lad$) clear 33 BDRlistset(Lad$,33) RempCombo(nobj%,33) End_sub
' (+) Klaus procédure pour créer un lad Sub AjoutLadKlaus(L$,Obj%) Dim_Local nobj%,T$ nobj%=Obj% :T$=L$ BDRadd(T$,"") BDRsetelement(T$,Lad$) clear 33 BDRlistset(Lad$,33) RempCombo(nobj%,33) End_sub
Sub AjoutStation(S$,Obj%) Dim_Local nobj%,T$ nobj%=Obj% :T$=S$ BDRsetelement(T$,Site$) Clear 34 BDRlistset(Site$,34) RempCombo(nobj%,34) End_Sub
Sub AjoutCheval() End_Sub
' _________________________________________________________REMPLISSAGE DES COMBO Sub RempCombo(No%,List%) Clear No% file_save List%,"File.temp" file_load No%,"File.temp" file_delete "File.temp" End_Sub
Il faut KGF_SUB.bas et BDR_pour_KGF_SUB.bas. Ne te décourage pas - tu es sur la bonne voie. Tu as résolu les problèmes de fond, mais tu as été perdu dans la multitude de fonctions que tu as prévues, déjà préparées au niveau du codage, mais pas encore complétées. Regarde bien ce que j'ai fait - c'est la voie à suivre. Bon courage ! | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 20 Avr 2013 - 22:22 | |
| Merci Klaus, je vais regarder çà de près. la fonction d'ajout lad était là sauf que j'ai légèrement oublié le BDRadd mais bon je vais voir dans tes modif ce qui faisait que j'avais un BDRstatus=0 après BDRopen(fic$) je te tiens au courant... edit : le pb de affiche_effectif() venait, je pense, du fait que j'ai écrit plus vite que je n'ai réfléchi et du coup grid_row est devenu grid_column | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: BDR.dll: utilisation simultanée avec KGF.dll Sam 20 Avr 2013 - 22:29 | |
| Ah, ces confusions, ça peut arriver !
Par contre, pour l'ajout du lad, il y avait bien une procédure, mais elle ne créait pas le lad en tant qu'entité. Regarde celle que j'ai faite - j'ai dupliqué la tienne et je l'ai modifiée de sorte qu'elle marche. Prends-la comme modèle. De plus, il fallait l'appeler dans la routine clic pour le bon bouton... enfin, tu verras. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 20 Avr 2013 - 23:00 | |
| Pourquoi après BDRopen , BDRstatus renvoi 1 soit fermée | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: BDR.dll: utilisation simultanée avec KGF.dll Sam 20 Avr 2013 - 23:05 | |
| Je te poste l'exemple qui est dans la doc BDR.chm: - Code:
-
BDRstatus() if BDRstatus<1 then message "erreur" else if BDRstatus=0 message "La BDR est fermée" else message "La BDR est ouverte" end_if end_if
Je ne comprends pas ton problème. Ton BDRstatus t'explique bien que la BDR est ouverte... Les erreurs sont des valeurs négatives ! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: BDR.dll: utilisation simultanée avec KGF.dll Dim 21 Avr 2013 - 11:14 | |
| J'ai pris une décision:
Je n'intégrerai pas physiquement BDR.dll dans KGF.dll. Les 2 DLLs continueront à exister séparément.
BDR est un ensemble indepéndant, assez complexe, mais utilisable tout à fait séparément de KGF.dll. Je souhaite garder cette possibilité.
Par contre, j'ai supprimé le module BDR_pour_KGF_SUB.bas et je l'ai intégré en totalité à KGF_SUB.bas. Donc, dès l'instant qu'on utilise KGF_SUB.bas (ce que je conseille fortement), on peut utiliser BDR de façon parfaitement transparente.
Pour ton programme, la seule chose à changer, c'est de retirer #include "NDR_pour_KGF_SUB.bas" qui est devebu obsolète, après avoir télé-chargé à nouveau KGF_SUB.bas !
EDIT
Ceci dit, les fonctions BDR ajoutées à KGF_SUB.bas se situent en bloc à la fin du fichier, avec des commentaires clairs. Pour ceux qui, pour des raisons de principe, souhaitent éliminer cela, rien de plus facile: il suffit enlever cette partie sans qsue cela perturbe le fonctionnement de KGF_SUB.bas. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 21 Avr 2013 - 14:01 | |
| @ Klaus, Très bien, je prends acte et je vais télécharger la dernière version de KGF_Sub. Je m'aperçois que cela ne m'empêche pas d'utiliser les fonctions de KGF.dll sans passer par KGF_SUB donc... Edit : Dès que j'aurai une version abboutie et utilisable de "Mon Ecurie", je pense revoir "Bibbliolib" façon BDR de façon à intégrer des relations entre les subs...mais c'est pour plus tard...
Dernière édition par ygeronimi le Dim 21 Avr 2013 - 14:06, édité 1 fois | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: BDR.dll: utilisation simultanée avec KGF.dll Dim 21 Avr 2013 - 14:05 | |
| | |
| | | Contenu sponsorisé
| Sujet: Re: BDR.dll: utilisation simultanée avec KGF.dll | |
| |
| | | | BDR.dll: utilisation simultanée avec KGF.dll | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |