Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: J'ai un problème... Jeu 11 Oct 2012 - 18:33 | |
| ...vous allez me dire : "Encore un !" Ben....oui ! J'ai mis le dossier complet sur mon webdav. J'ai une procédure chargée de remplir un "List" pour ne pas avoir plusieurs fois les mêmes items à chaque actualisation,j'ai mis un "clear N" avant la boucle de remplissage du "list" ce que j'ai toujours fait avec les "gosub" et qui fonctionnait très bien. Mais voilà cette procédure fonctionne un peu quand elle veut, et plutôt que de vous faire de grand discours, je vous propose de récupérer le dossier "Version 1" sur mon webdav et de lancer le source (en prenant soin de forcer l'éditeur pour la reconnaissance des dossiers )et d'essayer d' ajouter un cheval dans Effectif. la procédure est appelée à l'ouverture du form et là pas de PB mais si vous voulez rajouter un cheval... alors que si la base est vide au départ et que vous ajoutez un cheval à ce moment là, çà fonctionne.... La procédure en question : ligne 159 à 174 - Code:
-
' ------------------------------------------------------------------------------ Sub Remp_Liste(No%,Liste%) Dim_Local x%,i$,T$(3),sep% Clear 101 While Count(Liste%)>0 x%=x%+1 if x%>Count(Liste%) Then Exit_While i$=Item_Read$(Liste%,x%) sep%=Instr(i$,"|") T$(1)=Left$(i$,sep%-1) i$=Right$(i$,Len(i$)-sep%) sep%=Instr(i$,"|") T$(2)=Left$(i$,sep%-1) Item_Add No%,T$(2) T$(3)=Right$(i$,Len(i$)-sep%) End_While End_Sub ' ------------------------------------------------------------------------------
Dernière édition par ygeronimi le Jeu 11 Oct 2012 - 19:41, édité 1 fois | |
|
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 11 Oct 2012 - 20:47 | |
| Voilà le source qui fonctionne - Code:
-
Application_Title "Mon Ecurie" init() formulaire(0,1,"Mon Ecurie",800,600,0,0) menu(0,1,7) Ss_Menu(9,2,4) Ss_Menu(14,3,1) Caption_Menu(1,14) end ' ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ ' #include "Init.bas" ' #include "MenuClic.bas" ' #include "Librairie.bas" ' #include "Data.bas" ' #include "Effectif.bas" ' #include "Personnel.bas" ' ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ ' ¤ INIT() ¤ ' ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ Sub Init() Init_Constantes() Init_Variables() Init_Etiquettes() Init_Invisibles() Init_Listes() End_Sub ' ------------------------------------------------------------------------------ Sub Init_Constantes() Dim D$(4),File$(10) Create_Dossiers() Create_Fichiers() End_Sub ' ------------------------------------------------------------------------------ Sub Create_Dossiers() Dim_Local x% ' vérif / création des dossiers et de leur identifiants D$(1)=Dir_Current$:D$(2)=D$(1)+"\Bdd":D$(3)=D$(1)+"\Echanges":D$(4)=D$(1)+"\Photos" For x%=2 To 4:If Dir_Exists(D$(x%))=0 Then Dir_Make D$(x%):Next x% End_Sub ' ------------------------------------------------------------------------------ Sub Create_Fichiers() Dim_Local x%,s$ ' vérif / création des fichiers et de leur identifiants File$(1)=D$(2)+"\Chevaux.Bdd":File$(2)=D$(2)+"\Personnel.Bdd":File$(3)=D$(2)+"\Intervenants.Bdd" File$(4)=D$(1)+"\KGF.dll" For x%=1 To 3 s$=File$(x%) If File_Exists(s$)=0:File_Open_Write 1,s$:File_Close 1:End_If Next x% End_Sub ' ------------------------------------------------------------------------------ Sub Init_Variables() Dim M%,L%,H% End_Sub ' ------------------------------------------------------------------------------ Sub Init_Etiquettes() Label Clic End_Sub ' ------------------------------------------------------------------------------ Sub Init_Invisibles() Dlist 1001 :' Liste temp des Chevaux Dlist 1002 :' Liste temp du Personnel Dlist 1003 :' Liste temp des intervenants Dlist 1004 :' Liste temp des photos du cheval selectionnee End_Sub ' ------------------------------------------------------------------------------ Sub Init_Listes() Dim_Local x% for x%=1 to 3:File_Load 1000+x%,file$(x%):Next x% End_Sub ' ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ ' ¤ MenuClic ¤ ' ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ Clic: M%=Number_Click Select M%
Case 9 Effectif() Case 10 Personnel() Case 11 Intervenants() Case 13 Quitter() Case 101 Selection(1001) Case 104 Ajout(101) Case 105
Case 107
Case 108
End_Select Return ' ------------------------------------------------------------------------------ Sub Intervenants() If Object_Exists(300)=0 formulaire(300,1,"Intervenants",500,300,0,0) Else Show 300 end_if End_Sub ' ------------------------------------------------------------------------------ Sub Quitter() Terminate End_Sub ' ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ ' ¤ Effectif ¤ ' ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ Sub Effectif() If Object_Exists(100)=0 formulaire(100,1,"Effectif",500,300,0,0) List 101:Width 101,150:Height 101,262:On_Click 101,Clic Picture 103:Width 103,300:Height 103,200:Top 103,55:Left 103,175:Color 103,220,220,220 Stretch_On 103 Button 104:Top 104,5 :Left 104,152:Width 104,15:Height 104,15:Caption 104,"+":Cursor_Point 104 Font_Bold 104:Hint 104,"Ajouter un cheval":On_Click 104,Clic Button 105:Top 105,25:Left 105,152:Width 105,15:Height 105,15:Caption 105,"-":Cursor_Point 105 Font_Bold 105:Hint 105,"Supprimer un cheval":On_Click 105,Clic Alpha 106:Top 106,25:Left 106,175:Font_Size 106,14:font_color 106,120,20,10 Button 107:Top 107,215:Left 107,152:Width 107,15:Height 107,15:Caption 107,"3":cursor_Point 107 Font_Name 107,"Webdings":Hint 107,"Photo Précédente":On_Click 107,Clic Button 108:Top 108,235:Left 108,152:Width 108,15:Height 108,15:Caption 108,"4":Cursor_Point 108 Font_Name 108,"Webdings":Hint 108,"Photo suivante":On_Click 108,Clic Check 109:Top 109,10:Left 109,385:Caption 109,"Présent(e)" Command_Target_Is 0 Else Show 100 End_If Test_Liste(1001) End_Sub ' ------------------------------------------------------------------------------ Sub Test_Liste(Liste%) If Count(Liste%)>0 Remp_Liste(101,1001) Else If Message_Information_Yes_No("La Base Chevaux est vide !"+Chr$(13)+"Voulez vous ajouter un pensionnaire ?")=1 Ajout(Liste%) Else Hide 100 End_If End_If End_Sub ' ------------------------------------------------------------------------------ Sub Ajout(Liste%) Dim_Local x%,Name$,Etat% If Message_input("Ajouter un pensionnaire","Nom du cheval :","")=1 x%=count(Liste%)+1 Name$=Message_Text$ Etat%=1 Item_Add 1001,Str$(x%)+"|"+Name$+"|"+str$(Etat%) File_Save 1001,File$(1) End_If Remp_Liste(101,1001) End_Sub ' ------------------------------------------------------------------------------ Sub Remp_Liste(No%,Liste%) Dim_Local x%,i$,T$(3),sep% clear 101 While Count(Liste%)>0 x%=x%+1 if x%>Count(Liste%) Then Exit_While i$=Item_Read$(Liste%,x%) sep%=Instr(i$,"|") T$(1)=Left$(i$,sep%-1) i$=Right$(i$,Len(i$)-sep%) sep%=Instr(i$,"|") T$(2)=Left$(i$,sep%-1) Item_Add No%,T$(2) T$(3)=Right$(i$,Len(i$)-sep%) End_While End_Sub ' ------------------------------------------------------------------------------ Sub Selection(L%) Dim_Local x%,i$,T$(3),sep%,Img$ Caption 106,Item_Index$(101) While Count(L%)>0 x%=x%+1 if x%>Count(L%) Then Exit_While i$=Item_Read$(L%,x%) sep%=Instr(i$,"|") T$(1)=Left$(i$,sep%-1) i$=Right$(i$,Len(i$)-sep%) sep%=Instr(i$,"|") T$(2)=Left$(i$,sep%-1) T$(3)=Right$(i$,Len(i$)-sep%) If T$(2)=Item_Index$(101) If Val(T$(3))=1 Then Mark_On 109 Img$=T$(2) Charge_Photos(Img$) Exit_while End_If End_While End_Sub ' ------------------------------------------------------------------------------ Sub Charge_Photos(Img$) Dim_Local P$,T$,I$ Dir_Change D$(4) Clear 1004 P$=File_Find_First$ T$=file_extract_Name$(P$) T$=left$(T$,len(Img$)) If T$=Img$ Then Item_Add 1004,P$ P$=File_Find_Next$ While P$<>"_" T$=file_extract_Name$(P$) T$=left$(T$,len(T$)-4) If T$=Img$ Then Item_Add 1004,P$ P$=File_Find_Next$ End_While ' message str$(count(1004)) if count(1004)>0 I$=Item_Read$(1004,1) If I$ <>"_" Then Miniature(300,200,103,I$) End_If End_Sub ' ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ ' ¤ PERSONNEL ¤ ' ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ Sub Personnel() If Object_Exists(200)=0 formulaire(200,1,"Personnel",500,300,0,0) Else Show 200 end_if End_Sub
' ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ ' ¤ Librairie ¤ ' ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ ' ' Création d'un formulaire ' ------------------------------------------------------------------------------ Sub Formulaire(No%,V%,Titre$,W%,H%,T%,L%) if No% > 0 then Form No% If V%=0 then hide No% Command_Target_Is No% Width No%,W% :Height No%,H% if T%=0 :Top No%,(Screen_y-H%)/2 :else :Top No%,T% :end_if if L%=0 :Left No%,(Screen_x-W%)/2:else :Left No%,L%:end_if Font_Name No%,"Times new roman":Font_Size No%,10:Caption No%,Titre$ End_Sub ' ------------------------------------------------------------------------------ ' Création de container ' ------------------------------------------------------------------------------ Sub Frame(No%,Titre$,W%,H%,T%,L%) Container No% :Caption No%,chr$(32)+Titre$+chr$(32):Width No%,W% :Height No%,H% :Top No%,T%:Left No%,L% Font_color No%,120,20,10 End_sub ' ------------------------------------------------------------------------------ ' Création d'un Main_menu ' ------------------------------------------------------------------------------ Sub Menu(No%,Num%,Nbre%) Dim_local x% Command_target_is No% Main_menu Num% For x% =Num%+1 to Num%+Nbre% :Sub_menu x% :Parent x%,Num% :on_click x%,Clic Next x% End_Sub ' ------------------------------------------------------------------------------ ' Création de sous menus dans Main_menu ' ------------------------------------------------------------------------------ Sub Ss_Menu(dep%,Par%,Nbre%) Dim_local x% For x%= dep% to dep%+Nbre% :Sub_menu x% : Parent x%,Par% :on_click x%,Clic Next x% End_Sub ' ------------------------------------------------------------------------------ ' Attribution des captions du menu ' ------------------------------------------------------------------------------ Sub Caption_Menu(R%,N%) Dim_local M$,x%,def$(N%) Restore Read M$ While M$<>"Menu"+str$(R%) Read M$ End_While For x%=1 to N% :Read def$(x%): caption R%+x%,def$(x%):Next x% End_Sub ' ------------------------------------------------------------------------------ ' MINIATURE ' ------------------------------------------------------------------------------ Sub Miniature(L_Max%,H_Max%,No%,i$ ) Dim_Local x%,y%,z,res%,Img$,larg%,haut% Img$=I$ dll_on File$(4) res%=dll_call3("AnalyzeImageFile",adr(Img$),adr(larg%),adr(haut%)) if res%=1 then message "Erreur" dll_off x%=larg% :y%=haut% :z=1 While x%>L_Max% or y%>H_Max% z=z-0.01 x%=x%*z y%=y%*z End_While Width No%,x% Height No%,y% file_load 103,i$ End_Sub ' ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ ' ¤ DATAS ¤ ' ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ Data "Menu1" Data "Fichiers" Data "Soins" Data "Planning de travail" Data "Internet" Data "Outils" Data "A Propos" Data "Aide" Data "Effectif" Data "Personnel" Data "Intervenants" Data "__________________" Data "Quitter" Data "Journal" Data "Ajouter" Data "Menu101" Data "Voir" Data "Ajouter" Data "Supprimer" | |
|