FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Tout est tranquille
par Jean Claude Hier à 21:41

» Texte en gif animé
par JL35 Hier à 13:29

» BasicEditor
par Yannick Mer 20 Sep 2017 - 17:17

» Simuler l’appui d'une touche ou combinaison de touches.
par pascal10000 Lun 18 Sep 2017 - 19:30

» Utilisation de HVIEWER pour afficher des images
par papydall Lun 18 Sep 2017 - 17:43

» Panoramic et les gifs animés.
par papydall Lun 18 Sep 2017 - 16:32

» recover source
par pascal10000 Dim 17 Sep 2017 - 14:21

» Recent dans vos menu
par Jean Claude Sam 16 Sep 2017 - 11:41

» Comment centrer un texte 3D.
par pascal10000 Ven 15 Sep 2017 - 20:20

» Carte interface 16 entrées et 16 sorties
par Jicehel Ven 15 Sep 2017 - 16:30

» Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT
par pascal10000 Ven 15 Sep 2017 - 16:20

» Compilateur FBPano
par jean_debord Ven 15 Sep 2017 - 9:59

» 1 (en analyse): 3D_TARGET_IS ne fonctionne pas sur 3D_TEXT
par Jack Jeu 14 Sep 2017 - 19:52

» Problème avec la 3D.
par Jack Jeu 14 Sep 2017 - 18:06

» Test de la 3D.
par mindstorm Mer 13 Sep 2017 - 19:45

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Septembre 2017
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier

Partagez | 
 

 BDR.dll: utilisation simultanée avec KGF.dll

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Klaus

avatar

Nombre de messages : 10062
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: BDR.dll: utilisation simultanée avec KGF.dll   Sam 20 Avr 2013 - 14: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.bas

Modules modifiés:
aucun

Documentation modifiée:
BDR.chm, BDR.doc, BDR.pdf, lisez-moi.txt

Bref 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 - 21:48, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
papydall

avatar

Nombre de messages : 5531
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: BDR.dll: utilisation simultanée avec KGF.dll   Sam 20 Avr 2013 - 16:14

Klaus est toujours efficace même avec son utilisation similtanée des DLL !
Pardon Klaus, ça devient une habitude chez moi! Laughing Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Yannick

avatar

Nombre de messages : 7991
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Sam 20 Avr 2013 - 16:44

Bizarre, bizarre...

J'aurai pensé qu'il te serait plus facile d' assembler les deux dlls en une... scratch

Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 10062
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: BDR.dll: utilisation simultanée avec KGF.dll   Sam 20 Avr 2013 - 21: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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 7991
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Sam 20 Avr 2013 - 22: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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 10062
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: BDR.dll: utilisation simultanée avec KGF.dll   Sam 20 Avr 2013 - 22: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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 7991
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Sam 20 Avr 2013 - 22:52

Mouep, moi je veux bien sauvegarder, fermer, clôturer, supprimer,...
mais faudrait il encore que j'arrive à l'ouvrir... Laughing Laughing Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 10062
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: BDR.dll: utilisation simultanée avec KGF.dll   Sam 20 Avr 2013 - 23: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 !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 7991
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Sam 20 Avr 2013 - 23: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... Laughing

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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 10062
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: BDR.dll: utilisation simultanée avec KGF.dll   Sam 20 Avr 2013 - 23: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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 7991
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Dim 21 Avr 2013 - 0:00

Pourquoi après BDRopen , BDRstatus renvoi 1 soit fermée scratch
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 10062
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: BDR.dll: utilisation simultanée avec KGF.dll   Dim 21 Avr 2013 - 0: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 !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

Nombre de messages : 10062
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: BDR.dll: utilisation simultanée avec KGF.dll   Dim 21 Avr 2013 - 12: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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 7991
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Dim 21 Avr 2013 - 15: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... sunny


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... Laughing






Dernière édition par ygeronimi le Dim 21 Avr 2013 - 15:06, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 10062
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: BDR.dll: utilisation simultanée avec KGF.dll   Dim 21 Avr 2013 - 15:05

Effectivement.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé




MessageSujet: Re: BDR.dll: utilisation simultanée avec KGF.dll   

Revenir en haut Aller en bas
 
BDR.dll: utilisation simultanée avec KGF.dll
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» envois simultanés avec un seul formulaire
» Afficher plusieurs tracés simultanément avec gpsmap 62s?
» Garmin Nuvi 42 LM
» Utilisation du mediacenter avec disque USB sur Bbox Fibre
» Utilisation Base Camp avec NoteBook

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: Activité des sites créés par les Panoramiciens. :: Le site de Klaus-
Sauter vers: