FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
MyDrive Connector - Page 2 Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
MyDrive Connector - Page 2 Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
MyDrive Connector - Page 2 Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
MyDrive Connector - Page 2 Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
MyDrive Connector - Page 2 Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
MyDrive Connector - Page 2 Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
MyDrive Connector - Page 2 Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
MyDrive Connector - Page 2 Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
MyDrive Connector - Page 2 Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
MyDrive Connector - Page 2 Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
MyDrive Connector - Page 2 Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
MyDrive Connector - Page 2 Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
MyDrive Connector - Page 2 Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
MyDrive Connector - Page 2 Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
MyDrive Connector - Page 2 Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

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

 

 MyDrive Connector

Aller en bas 
5 participants
Aller à la page : Précédent  1, 2, 3  Suivant
AuteurMessage
Klaus

Klaus


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

MyDrive Connector - Page 2 Empty
MessageSujet: Re: MyDrive Connector   MyDrive Connector - Page 2 EmptyVen 24 Jan 2014 - 19:42

La solution:
dans ta procédure GUI(), ajoute une ligne juste après la commande SUB:
Code:
Sub GUI()
  on_close 0,quitter
et ça marche.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

MyDrive Connector - Page 2 Empty
MessageSujet: re   MyDrive Connector - Page 2 EmptyVen 24 Jan 2014 - 19:50

ATTENTION !

Si tu mets "On_close 0,Quitter" avec w7, ca bug
la solution est peut-être valable pour XP mais pas pour W7.

edit : le pb de Papydall vient du bouton Quitter pas de la Croix...
Revenir en haut Aller en bas
Klaus

Klaus


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

MyDrive Connector - Page 2 Empty
MessageSujet: Re: MyDrive Connector   MyDrive Connector - Page 2 EmptyVen 24 Jan 2014 - 22:46

Pas d'accord. Tu te souviens du programme de démo de toolbar avec bouton de sortie, validé par tous ? le revoici:
Code:
' démo_toolbar_avec_bouton_de_sortie.bas

' Ce petit programme montre l'utilisation de la toolbar dans un programme Panoramic.
' La toolbar est un objet externe à Panoramic, créé par une fonction de KGF.dll
' et injecté dans une fenêtre du programme Panoramic.
'
' Chaque bouton de la toolbar est visualisé par une icône carrée, dont les
' dimensions en pixels sont précisées lors de la création de la toolbar.
' Toutes les icônes ont les mêmes dimensions. Les icônes peuvent être chargées
' à partir d'un fichier icône (*.ico), à partir de la bibliothèque interne ou
' à partir d'une bibliothèque fournie par l'utilisateur (*.ilb). Elles peuvent
' être également un séparateur (un espace vide non cliquable de la taille d'une icône)
' ou un diviseur (une barre verticale étroite non cliquable) pour les toolbar horizontales
'
' Lors de la création de la toolbar, on indique la fenêtre (form) dans laquelle
' elle devra apparaître, et un objet EDIT invisible qui recevra l'identifiant
' de chaque bouton cliqué, et dont l'évènement ON_CHANGE servira pour signaler
' un clic sur un des boutons de la toolbar.
'
' Chaque bouton est associé à un identifiant. C'est uune valeur entière 1, 2, ...
' qui servira à identifier le bouton cliqué, dans la routine ON_CHANGE du EDIT
' associé à la toolbar. C'est dans cette routine qu'il faut placer les traitements
' spécifiques pour chaque bouton.
'
' Pour pouvoir arrêter le programme Panoramic, il faut supprimer la toolbar avant
' de sortir. Sinon, on obtient en général des crashs (violation de mémoire ou autre).
' Ceci doit être fait dans une routine ON_CLOSE 0.
'
' Un cas particulier est à traiter d'une façon spéciale. Si l'on veut placer un
' bouton dans la toolbar dont l'action sera l'arrêt du programme. En effet, si
' l'on arrête simplement le programme par "termnate", on a alors un conflit: la
' routine ON_CLOSE de la form 0 sera appelée pour supprimer la toolbar, mais la
' routine évènement déclenchant det évènement est toujours en cours. Ceci provoque
' inévitablement un crash.
'
' Alors, la solution consiste à déclencher un autre évènement, avec un délai
' suffisamment long pour laisser la routine évènement du clic se terminer.
' Un timer Panoramic est parfaitement adapté à cela. On le programme pour un
' délai de 500 ms dans la routine ON_CHANGE de l'objet EDIT, puis cette routine
' se termine normalement. Lorsque le timer se déclenche, on stoppe le timer
' tout de suite, on supprime le timer, et maintenant, on peut supprimer la
' toolbar sans risque, puis décharger KGF.dll.
'
' Le programme suivant illustre ces techniques.

' les labels utilisés:
label click_toolbar  : ' routine évènement pour le clic des boutons
label close0        : ' appelé lors de la fermeture de form 0
label sortir        : ' appelé par le timer activé par le 3ème bouton

' variables diverses
dim res%, icon$, after%, hint$, yy%

' ouverture de KGF.dll
dll_on "KGF.dll"

' un objet EDIT caché par lequel la toolbar signale
' l'identification du bouton cliqué. Chaque clic charge
' l'identifiant du bouton dans cet objet EDIT, et son
' évènement ON_CHANGE déclenche alors la routone click_toolbar
' dans laquelle on va traiter le bouton cliqué.
edit 1 : hide 1
on_change 1,click_toolbar

' assurer une fermeture propre en supprimant la toolbar
on_close 0,close0

' création de la toolbar (horizontale en haut de la fenêtre)
' Les paramètres passés sont:
'  handle(0) = fenêtre dans laquelle la toolbar apparaîtra
'  handle(1) = objet EDIT recevant l'identification du bouton cliqué
'  0        = paramètre non utilisé pour le moment (extension future)
'  0        = position de la toolbar
'                0=bord haut  1=bord gauche  2=bord bas  3=bord droit
res% = dll_call4("CreateToolbar",handle(0),handle(1),0,0)

' changement de la couleur de fond de la toolbar (jaune dans ce cas)
res% = dll_call4("ModifyToolbar",1,255,255,0)

' définition de la taille des icônes en pixels (défaut: 16)
res% = dll_call4("ModifyToolbar",7,16,0,0)

' changer la taille de la fenêtre et adapter la position de la toolbar
width 0, width(0) + 200
height 0,screen_y-40
res% = dll_call4("ModifyToolbar",2,0,0,0)

' créer un premier bouton. Paramètres:
'  1          = identifiant du bouton (chargé dans lobjet EDIT en cliquant)
'  0-1        = valeur -1 pour dire "placer l'icône après la dernière icône présente"
'  adr(hint$) = texte de la bulle d'information
'  adr(icon$) = nom de l'icône
'                Possibilités:
'                  - nom de fichier *.ico
'                  - "KGF_n" pour choisir l'icône numéro n de la bibliothèque iinterne
'                  - "USER_n" pour choisir l'icône numéro n de la bibliothèque utilisateur
'                  - " "  (un espace) pour créer un séparateur (espace vide de la taille d'une icône
'                  - "" (chaîne vide) pour créer un diviseur (uniquement toolbars horizontales)
hint$ = ""
icon$ = "KGF_266"
res% = dll_call4("AddButtonToToolbar",1,0-1,adr(hint$),adr(icon$))

' créer un deuxième bouton
hint$ = ""
icon$ = "KGF_66"
res% = dll_call4("AddButtonToToolbar",2,0-1,adr(hint$),adr(icon$))

' créer un troisième bouton
hint$ = ""
icon$ = "KGF_204"
res% = dll_call4("AddButtonToToolbar",3,0-1,adr(hint$),adr(icon$))

end


' routine évènement lancée lorqu'un des boutons est cliqué
click_toolbar:
  ' récupérer l'identifiant du bouton cliqué
  yy%=val(text$(1))
  ' effectuer le traitement approprié pour chaque identifiant
  select yy%
    case 1
      message "Click sur bouton 1"
    case 2
      message "Click sur bouton 2"
    case 3
      ' utiliser le 3ème bouton comme bouton de sortie
      if object_exists(17)=0 then timer 17  : ' créer un timer si nécessaire
      timer_interval 17,500  : ' fixer l'interval à 500 ms
      on_timer 17,sortir    : ' indiquer le label pour l'évènement timer
  end_select
  return
 
 
' ici, le timer activé par le 3ème bouton a été déclenché. On veut sortir.
sortir:
  timer_off 17      : ' désactiver le timer
  ' demander confirmation (on peut supprimer cette ligne pour une sortie directe)
  if message_confirmation_yes_no("Voulez-vous vraiment sortir ?")<>1 then return
  ' on a accepté la sortie, donc continuer directement avec ce qui suit.
' ici, la form 0 est en train de fermer.
' On va supprimer la toolbar et décharger KGF.dll.
close0:
  ' supprimer complètement la toolbar
  ' paramètres:
  '  1    = suppression des boutons ET de la toolbar
  res% = dll_call1("RemoveToolbar",1)
  ' décharger la DLL, par sécurité.
  ' De fait, dans ce programme exemple, dll_off n'est pas nécessaire,
  ' mais c'est une bonne pratique de programmation de décharger ce qu'on a chargé.
  dll_off
  message "On sort..."
  ' la ligne suivante pourrait être "return" si on ne considère que le
  ' passage par l'évènement ON_CLOSE qui appelle la rourine close0.
  ' Mais, comme ce code peut aussi être exécuté à partir de l'évènement timer
  ' en activant la routine "sortir", il faut mettre "terminate" pour forcer
  ' l'arrêt du programme. Dans le cas d'une sortie par la croix rouge (ce qui
  ' déclenche l'évènement ON_CLOSE 0, la commande "terminate" agit exactement
  ' comme la commande "return".
  terminate
 
 
Et c'est fait exactement comme ça.

Le problème de la fermeture par la croix dans ta version, c'est qu'on ne revient pas en arrière du ModifyToolba code 8, et on ne supprime pas la toolbar, en sortant par la croix rouge. Ce qui est corrigé par la ligne que j'ai ajouté. En en cas de fermeture par la croix rouge, la dernière ligne de la routine on_close est "terminate" dans ton cas, ce qui, dans ce contexte, est équivalent à "return".
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

MyDrive Connector - Page 2 Empty
MessageSujet: re   MyDrive Connector - Page 2 EmptySam 25 Jan 2014 - 5:21

si je mets un " On_close 0,Quitter" j' ai droit à : "Panoramic a cessé de fonctionner..."
si je ne le mets pas tout va bien...

EUREKA !!!!!

En fait il faut deux labels.

1 Comme ceci pour fermer par le bouton :
Code:
Fin:
   timer_off MDC_timer%
Quitter:
   res% = dll_call4("ModifyToolbar",8,0,0,0)
   res% = dll_call1("RemoveToolbar",1)
   dll_off
   terminate
2 comme ceci pour fermer par la croix :
Code:
Quitter_croix:
   res% = dll_call4("ModifyToolbar",8,0,0,0)
   res% = dll_call1("RemoveToolbar",1)
return

Pourquoi un label fermé ?....
...ben c' est tout bête !

La commande on_close envoi vers un label à exécuter avant la fermeture qui elle est implicite.
Le terminate ferme l' application avant que la crois la ferme.
donc on a une erreur puisque la croix cherche à fermer/détruire quelque chose qu'il l' est déjà.
Le dll_off est lui implicite par la fermeture par la croix donc devient inutile et renvoie un bug si il est là.
Revenir en haut Aller en bas
Klaus

Klaus


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

MyDrive Connector - Page 2 Empty
MessageSujet: Re: MyDrive Connector   MyDrive Connector - Page 2 EmptySam 25 Jan 2014 - 9:53

Merci, YGeronnimo. Mais, ça me laisse un peu perplexe. Dans ton code, si tu sors par le bouton, tu fais un REmoveToolbar alors que la DLL est déjà enlevée, dès que la fenêtre se ferme, car ton label Quitter sera alors activé.

C'est pourquoi je propose la variable suivants, respectant toujours ta suggestion de séparer les deux traitements:
Code:

' fin par la touche de la toolbar
Fin:
  timer_off MDC_timer%
  res% = dll_call4("ModifyToolbar",8,0,0,0)
  res% = dll_call1("RemoveToolbar",1)
  dim toolbar_deja_supprimee% : ' signaler que la toolbar est déjà supprimée
  dll_off
  terminate

' fermeture de la fenêtre (y compris par la croix rouge)
Quitter:
  if variable("toolbar_deja_supprimee%")=0
    res% = dll_call4("ModifyToolbar",8,0,0,0)
    res% = dll_call1("RemoveToolbar",1)
  end_if
  return

Essaie stp cette variante. Si tu valides, je mets mon tuto à jour...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
papydall

papydall


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

MyDrive Connector - Page 2 Empty
MessageSujet: Re: MyDrive Connector   MyDrive Connector - Page 2 EmptySam 25 Jan 2014 - 11:39

J’ai tout essayé :  la fermeture par la croix, ça va, mais par l’icône j’ai toujours le même message d’erreur.
Je suis sous XP comme Klaus.
Klaus est-ce que tu confirmes que chez toi, ça marche ?
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Klaus

Klaus


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

MyDrive Connector - Page 2 Empty
MessageSujet: Re: MyDrive Connector   MyDrive Connector - Page 2 EmptySam 25 Jan 2014 - 12:14

Oui, ça marche.
Voici mon code (j'ai adapté certains chemins à ma configuration):
Code:
Variables()
Labels()
Start_Dll()
GUI()
Init()
end
' ------------------------------------------------------------------------------
Sub Variables()
  dim Titre$ : Titre$ ="My Drive Connector"
  dim W_GUI% : W_GUI% =298
  dim H_GUI% : H_GUI% =450
  dim T_GUI% : T_GUI% =(screen_y-H_GUI%)/2
  dim L_GUI% : L_GUI% =(screen_x-W_GUI%)/2
  dim obj%,O_List%,O_DList%
  dim MDC_DB$: MDC_DB$ =dir_current$+"\MDC_DB.bdd"
  dim MDC_NewFiche%,NF_edit1%,NF_edit2%,NF_edit3%,NF_Button%,clic%,NF_verif%
  dim Select_List%,Nom$,Login$,pw$
  dim MDC_timer%
End_sub
' ------------------------------------------------------------------------------
Sub Labels()
'  Click
  Label Fin,Quitter,clic
'  Change
  Label Toolbar_actions,FC_Black
End_sub
' ------------------------------------------------------------------------------
Sub Start_Dll()
  dim KGF$,res%
  KGF$="KGF.dll"
  dll_on KGF$
End_sub
' ------------------------------------------------------------------------------
Sub GUI()
  on_close 0,quitter
  width 0,W_GUI% : height 0,H_GUI% : top 0,T_GUI% : left 0,L_GUI%
  Caption 0,Titre$ : font_name 0,"arial" :font_bold 0 :font_color 0,0,0,230
  MenuTB()
  obj%=obj%+1 : O_List%=obj%
  O_List(O_List%,TB_Container%,1,5,0,height(TB_Container%)-6,width(TB_Container%)-1,"")
  cursor_point O_List% : On_click O_List%,clic
  obj%=obj%+1 : O_DList% =obj%
  O_DList(O_DList%,"")
  obj%=obj%+1 : MDC_Timer%=obj%
  O_Timer(obj%,0,500)
End_sub
' ------------------------------------------------------------------------------
Sub Init()
  if file_exists(MDC_DB$)=1
      file_load O_DList%,MDC_DB$
      Init_Liste()
  else
      if message_information_yes_no("La base compte est vide"+chr$(13)+"Voulez vous créer un compte ?...")=1
        F_NewFiche()
      else
        end_sub
      end_if
  end_if
End_sub
' ------------------------------------------------------------------------------
Sub Init_Liste()
  dim_local x%,L$,sep%
  clear O_List%
  if count(O_DList%)>0
      for x%= 1 to count(O_Dlist%)
        L$=item_read$(O_DList%,x%)
        sep%=instr(L$,"|")
        L$=left$(L$,sep%-1)
        item_add O_List%,L$
      next x%
      res% = dll_call4("ModifyToolbar",3,2,1,0)
  else
      res% = dll_call4("ModifyToolbar",3,2,0,0)
  end_if
End_sub
' ------------------------------------------------------------------------------
Sub MenuTB()
  dim_local x%
  dim TB_Position% :TB_Position% =0
  dim TB_IcoSize%  :TB_IcoSize% = 16
  dim TB_Lib$      :TB_Lib$ =dir_current$+"\Fichiers\MDC.ilb"
  dim chg_hor%    :chg_hor% =16
  dim chg_ver%    :chg_ver% =(TB_IcoSize%-16)+76
  dim icon$(12),ic$
  dim after%
  dim hint$(12),h$
  dim TB_Edit%, TB_Container%, TB_Button%

  obj%=obj%+1 :TB_Edit%=obj%
  Edit TB_Edit% : hide TB_Edit% :On_Change TB_Edit%,Toolbar_actions

  obj%=obj%+1 :TB_Container%=obj%
  Container TB_Container%

  res% = dll_call4("CreateToolbar",handle(0),handle(TB_Edit%),0,TB_Position%)
  res% = dll_call4("ModifyToolbar",7,TB_IcoSize%,0,0)
  Adapter_Container()
  res% = dll_call4("ModifyToolbar",8,1,0,0)
  res% = dll_call4("ModifyToolbar",2,0,0,0)

  if file_exists(TB_Lib$)=1
      res% = dll_call4("ModifyToolbar",5,adr(TB_Lib$),0,0)
      icon$(1) = "USER_1"
      icon$(2) = "USER_2"
      icon$(3) = "USER_3"
      icon$(4) = " "
      icon$(5) = " "
      icon$(6) = " "
      icon$(7) = " "
      icon$(8) = " "
      icon$(9) = " "
      icon$(10)= " "
      icon$(11)= "USER_7"
      icon$(12)= "USER_6"
  else
      icon$(1) = "KGF_140"
      icon$(2) = "KGF_186"
      icon$(3) = "KGF_336"
      icon$(4) = " "
      icon$(5) = " "
      icon$(6) = " "
      icon$(7) = " "
      icon$(8) = " "
      icon$(9) = " "
      icon$(10)= " "
      icon$(11)= " "
      icon$(12)= "KGF_204"
  end_if
  hint$(1) = "Ajouter un compte"
  hint$(2) = "Supprimer un compte"
  hint$(3) = "Se connecter à un compte"
  hint$(4) = ""
  hint$(5) = ""
  hint$(6) = ""
  hint$(7) = ""
  hint$(8) = ""
  hint$(9) = ""
  hint$(10)= ""
  hint$(11)= ""
  hint$(12)= "Quitter"

  for x%=1 to 12
      h$=hint$(x%)
      ic$=icon$(x%)
      res% = dll_call4("AddButtonToToolbar",x%,x%-1,adr(h$),adr(ic$))
      if ic$="USER_7"
        res% = dll_call4("ModifyToolbar",3,x%,0,0)
      end_if
  next x%
End_sub
' ------------------------------------------------------------------------------
Sub Adapter_Container()
  select TB_Position%
    case 0
      top TB_Container%,TB_IcoSize%+10
      width TB_Container%,(width(0)-chg_hor%)
      height TB_Container%,(height(0)-chg_ver%)+10
    case 1
      left TB_Container%,TB_IcoSize%+12
      width TB_Container%,(width(0)-chg_hor%)
      height TB_Container%,(height(0)-chg_ver%)
    case 2
      width TB_Container%,(width(0)-chg_hor%)
      height TB_Container%,(height(0)-chg_ver%)
    case 3
      width TB_Container%,(width(0)-chg_hor%)
      height TB_Container%,(height(0)-chg_ver%)
  end_select
End_sub
' ------------------------------------------------------------------------------
Toolbar_actions:
  TB_Button%=val(text$(TB_Edit%))
  if TB_Button%<0
    Message_Error()
  else
    select TB_Button%
      case 1 : F_NewFiche()
      case 2 : Remove_Fiche()
      case 3 : Connection()
      case 12
          timer_on MDC_timer%
          timer_interval MDC_timer%,500
          on_timer MDC_timer%,fin
    end_select
  end_if
return
' ------------------------------------------------------------------------------
Sub Remove_Fiche()
  dim_local L$
  if Select_list%<>0
      item_delete O_List%,Select_list%
      item_delete O_DList%,Select_List%
      file_save O_DList%,MDC_DB$
      Init_Liste()
  else
      Message "Sélectionnez un nom..."
  end_if
End_sub
' ------------------------------------------------------------------------------
Sub Connection()
  dim_local hnd%,s$,T$,cpt%
  res% = dll_call1("GetKeyboardState",20)
  if res%>0 then res% = dll_call5("SendSingleKey",handle(0),20,0,0,0)
  hide 0
  Execute "http://www.mydrive.ch"
  hide 0
  pause 3000

  while left$(t$,7)<>"MyDrive"
    T$ = string$(255," ")
    hnd% = dll_call1("GetActiveWindowTitle",adr(T$))
    if T$<>string$(255," ")
        if left$(T$,7)="MyDrive"
          exit_while
        end_if
    end_if
  end_while

  s$ = Login$
  hnd% = dll_call0("GetActiveControl")
  res% = dll_call2("SendStringAsText",hnd%,adr(s$))
  s$ = chr$(9)
  res% = dll_call2("SendStringAsText",hnd%,adr(s$))
  pause 1000
  s$ = pw$
  res% = dll_call2("SendStringAsText",hnd%,adr(s$))
  pause 1000
  s$ = chr$(13)
  res% = dll_call2("SendStringAsText",hnd%,adr(s$))
  pause 1000
  show 0
End_sub
' ------------------------------------------------------------------------------
Clic:
  clic%=number_click
  if clic%=NF_Button% :Save_Compte():end_if
  if clic%=O_List% :Select_Liste():end_if
return
' ------------------------------------------------------------------------------
Sub Select_Liste()
  dim_local sep%,L$
  Nom$="":Login$="":pw$=""
  if item_index(O_List%)>0
      Select_List%=item_index(O_List%)
      L$=item_read$(O_DList%,Select_List%)
      sep%=instr(L$,"|")
      Nom$ = left$(L$,sep%-1)
      L$=right$(L$,len(L$)-sep%)
      sep%=instr(L$,"|")
      Login$= left$(L$,sep%-1)
      pw$=right$(L$,len(L$)-sep%)
  end_if
End_sub
' ------------------------------------------------------------------------------
Sub Save_Compte()
    dim_local L$
    if text$(NF_edit1%)="":message "Champ 'Pseudo' vide"+chr$(13)+"Enregistrement impossible...":end_sub:end_if
    if text$(NF_edit2%)="":message "Champ 'Login' vide"+chr$(13)+"Enregistrement impossible...":end_sub:end_if
    if text$(NF_edit3%)="":message "Champ 'Password' vide"+chr$(13)+"Enregistrement impossible...":end_sub:end_if
    Verif_liste()
    if NF_verif%=1
      if message_warning_yes_no("Une fiche :"+text$(NF_edit1%)+" existe déjà !"+chr$(13)+"Voulez créer la fiche ?...")<>1
          Text NF_edit1%,""
          Text NF_edit2%,""
          Text NF_edit3%,"panoramic123"
          Hide MDC_NewFiche%
          end_sub
      end_if
    end_if
    L$=text$(NF_edit1%)+"|"+Text$(NF_edit2%)+"|"+Text$(NF_edit3%)
    item_add O_DList%,L$
    file_save O_DList%,MDC_DB$
    Init_Liste()
    Text NF_edit1%,""
    Text NF_edit2%,""
    Text NF_edit3%,"panoramic123"
    Hide MDC_NewFiche%
End_sub
' ------------------------------------------------------------------------------
Sub Verif_liste()
    dim_local T$,x%
    NF_verif%=0
    if count(O_List%)>0
      for x%=1 to count(O_List%)
          T$=item_read$(O_List%,x%)
          if T$=Text$(NF_edit1%)
              NF_verif%=1
              exit_for
          end_if
      next x%
    end_if
End_sub
' ------------------------------------------------------------------------------
Sub Message_Error()
  if TB_Button%=-1 then Adapter_Container()
  if TB_Button%=-2 then message "Error 2"
  if TB_Button%=-3 then message "Error 3"
  if TB_Button%=-4 then message "Error 4"
End_sub
' ------------------------------------------------------------------------------
Sub F_NewFiche()
  dim_local hnd%
  if MDC_NewFiche%>0
      show MDC_NewFiche%
      text NF_edit3%,"panoramic123"
      Font_color NF_edit3%,120,120,120
  else
      obj%=obj%+1 : MDC_NewFiche%=obj%
      O_Form(obj%,0,1,0,0,205,350,"Créer un compte")
      font_name obj%,"arial" : font_size obj%,8
      obj%=obj%+1
      O_Alpha(obj%,MDC_NewFiche%,1,10,10,0,0,"Pseudo")
      font_color obj%,0,0,200
      obj%=obj%+1 :NF_edit1%=obj%
      O_Edit(obj%,MDC_NewFiche%,1,25,10,0,200)
      obj%=obj%+1
      O_Alpha(obj%,MDC_NewFiche%,1,50,10,0,0,"Login")
      font_color obj%,0,0,200
      obj%=obj%+1 :NF_edit2%=obj%
      O_Edit(obj%,MDC_NewFiche%,1,65,10,0,300)
      obj%=obj%+1
      O_Alpha(obj%,MDC_NewFiche%,1,90,10,0,0,"Password")
      font_color obj%,0,0,200
      obj%=obj%+1 :NF_edit3%=obj%
      O_Edit(obj%,MDC_NewFiche%,1,105,10,0,200)
      text obj%,"panoramic123" : font_color obj%,120,120,120
      on_click NF_edit3%,FC_black
      obj%=obj%+1 :NF_Button%=obj%
      O_Button(obj%,MDC_NewFiche%,1,135,width(MDC_NewFiche%)-100,0,0,"Enregistrer",1)
  end_if
  hnd%=handle(MDC_NewFiche%)
  res% = DLL_call2("WindowTopMost",hnd%,1)
End_sub
' ------------------------------------------------------------------------------
Sub O_Form(No%,P%,V%,T%,L%,H%,W%,C$)
  if No%> 0 then FORM No%
  if P% > 0 then Parent No%,P%
  If V% = 0 Then hide No%
  If H% > 0 Then Height No%,H%
  If W% > 0 Then Width No%,W%
  If T% > 0 : Top No%,T% : Else : Top No%,(Screen_y-H%)/2 : End_If
  If L% > 0 : Left No%,L%: Else : Left No%,(Screen_x-W%)/2: End_If
  if C$<>"" then Caption No%,C$
End_Sub
' ------------------------------------------------------------------------------
Sub O_Alpha(No%,P%,V%,T%,L%,H%,W%,C$)
  ALPHA No%
  if P% > 0 then Parent No%,P%
  If V% = 0 Then hide No%
  If H% > 0 Then Height No%,H%
  If W% > 0 Then Width No%,W%
  If T% > 0 Then Top No%,T%
  If L% > 0 Then Left No%,L%
  if C$<>"" then Caption No%,C$
End_Sub
' ------------------------------------------------------------------------------
Sub O_Edit(No%,P%,V%,T%,L%,H%,W%)
  EDIT No%
  if P% > 0 then Parent No%,P%
  If V% = 0 Then hide No%
  If H% > 0 Then Height No%,H%
  If W% > 0 Then Width No%,W%
  If T% > 0 Then Top No%,T%
  If L% > 0 Then Left No%,L%
End_Sub
' ------------------------------------------------------------------------------
Sub O_List(No%,P%,V%,T%,L%,H%,W%,F$)
  LIST No%
  if P% > 0 then Parent No%,P%
  If V% = 0 Then hide No%
  If H% > 0 Then Height No%,H%
  If W% > 0 Then Width No%,W%
  If T% > 0 Then Top No%,T%
  If L% > 0 Then Left No%,L%
  if F$<>""
  if file_exists F$ then file_load No%,F$
  end_if
End_Sub
' ------------------------------------------------------------------------------
Sub O_Timer(No%,OO%,Inter%)
  TIMER No%
  if OO%=1 then timer_on No%
  if OO%=0 then timer_off No%
  if inter%>0 then timer_interval No%,inter%
End_Sub
' ------------------------------------------------------------------------------
Sub O_Dlist(No%,F$)
  DLIST No%
  if F$<>"" then file_load No%,F$
End_Sub
' ------------------------------------------------------------------------------
Sub O_Button(No%,P%,V%,T%,L%,H%,W%,C$,Cl%)
  BUTTON No%
  if P% > 0 then Parent No%,P%
  If V% = 0 Then hide No%
  If H% > 0 Then Height No%,H%
  If W% > 0 Then Width No%,W%
  If T% > 0 Then Top No%,T%
  If L% > 0 Then Left No%,L%
  if C$<>"" then Caption No%,C$
  if Cl%> 0 then on_click No%,Clic
  cursor_point No%
End_Sub
' ------------------------------------------------------------------------------
FC_Black:
  Font_color NF_edit3%,0,0,0
return
' ------------------------------------------------------------------------------
Fin:
  timer_off MDC_timer%
  res% = dll_call4("ModifyToolbar",8,0,0,0)
  res% = dll_call1("RemoveToolbar",1)
  dim toolbar_deja_supprimee% : ' signaler que la toolbar est déjà supprimée
  dll_off
  terminate
Quitter:
  if variable("toolbar_deja_supprimee%")=0
    res% = dll_call4("ModifyToolbar",8,0,0,0)
    res% = dll_call1("RemoveToolbar",1)
  end_if
  return
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

MyDrive Connector - Page 2 Empty
MessageSujet: re   MyDrive Connector - Page 2 EmptySam 25 Jan 2014 - 13:15

Dans mes codes il y a deux systèmes de fermeture différents:

le 1 pour le bouton 
le 2 pour la croix

La dll n' est pas fermée avant les appels. 
Dans le 2 la commande on_close fait l' appel à l' arrêt de la fonction 8 et la fermeture de la toolbar
dans le label à exécuter avant la fermeture automatique qui elle ferme la dll puis la fenêtre.
Dans le 1 j' ai bien un arret de la fonction 8 puis fermeture de la toolbar puis arret de la dll puis terminate.

Je vais mettre sur le webdav le dossier complet mis à jour d' ici 5 minutes.

Dans ton code, ta variable fait une verif qui sera toujours vrai.
Si tu passes par Quitter ta variable n'existera pas.
Si tu passes par Fin tu n' aura pas besoin de vérifier son existence puisque la fenêtre sera déjà fermé par terminate...
A moins que tu arrives à fermer deux fois la même fenêtre... Laughing
Revenir en haut Aller en bas
Klaus

Klaus


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

MyDrive Connector - Page 2 Empty
MessageSujet: Re: MyDrive Connector   MyDrive Connector - Page 2 EmptySam 25 Jan 2014 - 13:59

Mais non, Ygeronimi.

Dans mon code, si tu fermes par la croix rouge, le code est vrai, car fa fameuse variable n'a pas été définie. Donc, on supprime la toolbar, avant de faire return.

Si tu fermes par le bouton de la toolbar, la toolbar est déjà supprimée, et la fameuse variable a été définie. Donc, lorsque tu arrives dans la routine on_close, la condition est fausse et on n'essaie pas de supprimer la toolbar une seconde fois.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

MyDrive Connector - Page 2 Empty
MessageSujet: re   MyDrive Connector - Page 2 EmptySam 25 Jan 2014 - 14:06

@ Klaus,

si tu utilises  "Fin"  tu ne peux plus utiliser "Quitter" puisque la commande Terminate à fermer/détruit la fenêtre
si tu utilises "Quitter" la variable n' existe pas puisqu' elle n' est pas créée...


Par contre, elle serait utile Si on pouvait supprimer la toolbar en cours de programme
car là il faudrait vérifier la présence ou non de la toolbar pour ne pas la supprimer alors
qu' elle n' existe déjà plus.
Revenir en haut Aller en bas
Klaus

Klaus


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

MyDrive Connector - Page 2 Empty
MessageSujet: Re: MyDrive Connector   MyDrive Connector - Page 2 EmptySam 25 Jan 2014 - 14:11

Erreur, Ygeronimi.

La commande TERMINATE instruit Panoramic d'arrêter le programme. Panoramic ferme tout, y compris la form 0. Mais, comme la form 0 a un évènement ON_CLOSE, cette routine est appelée AVANT la suppression de la form 0 ! La form est encore bel en bien présente. Et si l'on a fermé par la croix rouge, la toolbar n'a évidemment pas encore été supprimée, et il fait le faire à ce moment-là.

Regarde le code suivant:
Code:

label close0
on_close 0,close0
end
close0:
message "on sort"
return
Si tu arrêtes le programme par la croix rouge, tu vois apparaître le message, mais la form 0 est toujours là, et Panoramic est toujours là !

EDIT

Et si fu fais:
Code:

label close0,fin
on_close 0,close0
button 1 : caption 1,"Fin" : on_click 1,fin
end
fin:
message "Fin"
terminate
close0:
message "on sort"
return
En cliquant sur le bouton "Fin", tu vois d'abord le message "Fin", puis la commande TERMINATE agit, et tu vois le message "on sort' - la form 0 étant toujours là, et Panoramic aussi, APRES le TERMINATE !

Je constate qu'il n'en est rien, qu'on ne passe pas par ON_CLOSE en faisant TERMINATE ! Donc, je me suis trompé sur ce point. Mais on en revint à ma première solution: le traitement de fin et on_close est identique, sauf que dans le cas particulier du bouton fin de la toolbar, il faut arrpeter le timer. Voici ce que ça donne, sur me plan du principe:
Code:
label close0,fin,sortie
timer 2 : timer_off 2
timer_interval 2,500
on_close 0,close0
button 1 : caption 1,"Fin" : on_click 1,fin
end
fin:
message "Fin"
on_timer 2,sortie
timer_on 2
return
sortie:
timer_off 2
close0:
message "Sortie"
terminate
Et c'est exactement ce que je faisais dans ma démo toolbar.


Dernière édition par Klaus le Sam 25 Jan 2014 - 14:24, édité 1 fois
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

MyDrive Connector - Page 2 Empty
MessageSujet: re   MyDrive Connector - Page 2 EmptySam 25 Jan 2014 - 14:22

Je suis bien d' accord mais ce sont deux chemins différents

soit  tu prends l' un soit tu prends l' autre et là tu crées ta variables dans un chemin
et tu la vérifie dans l' autre alors que les deux n' ont pas de retour possible.
Revenir en haut Aller en bas
Klaus

Klaus


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

MyDrive Connector - Page 2 Empty
MessageSujet: Re: MyDrive Connector   MyDrive Connector - Page 2 EmptySam 25 Jan 2014 - 14:25

On s'est croisé. J'ai révisé ma position par rapport au TERMINATE. J'avais mal compris son fonctionnement.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

MyDrive Connector - Page 2 Empty
MessageSujet: Re: MyDrive Connector   MyDrive Connector - Page 2 EmptySam 25 Jan 2014 - 14:27

La fonction GetToolbarInfo code 1 permet de savoir si la toolbar existe...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

MyDrive Connector - Page 2 Empty
MessageSujet: Re: MyDrive Connector   MyDrive Connector - Page 2 EmptySam 25 Jan 2014 - 14:36

Donc, en résumé, voici le traitement de fin qui devrait marcher dans tous les cas:
Code:
' ------------------------------------------------------------------------------
Fin:
  timer_off MDC_timer%
Quitter:
  res% = dll_call2("GetToolbarInfo",1,0)  : ' tester si la toolbar existe
  if res%=1
    res% = dll_call4("ModifyToolbar",8,0,0,0)
    res% = dll_call1("RemoveToolbar",1)
  end_if
  dll_off
  terminate
Chez moi, sous XP, pas de problème? Bouton ou croix rouge, tout est géré.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

MyDrive Connector - Page 2 Empty
MessageSujet: re   MyDrive Connector - Page 2 EmptySam 25 Jan 2014 - 14:38

En fait il y a deux commandes

la commande par la croix est une commande windows appelée par clic sur la croix
la commande terminate qui est une commande Panoramic


Pour la première, certaines actions seulement sont nécessaires en amont par l' appel de "on_close"
Pour la deuxième, toutes les actions de libération sont à faire avant .
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

MyDrive Connector - Page 2 Empty
MessageSujet: re   MyDrive Connector - Page 2 EmptySam 25 Jan 2014 - 14:46

Ton code sera valable pour le bouton mais pas pour la croix....

Tu fermes la fenêtre par terminate alors que la croix appel une autre fonction , windows elle, à le faire.
Tu inclus dll_off qui fait aussi un bug par la croix.


Code:
Fermeture_Croix:
  res% = dll_call2("GetToolbarInfo",1,0)  : ' tester si la toolbar existe
  if res%=1
    res% = dll_call4("ModifyToolbar",8,0,0,0)
    res% = dll_call1("RemoveToolbar",1)
  end_if
return


Fermeture_bouton:
   Timer_off MDC_Timer%
  res% = dll_call2("GetToolbarInfo",1,0)  : ' tester si la toolbar existe
  if res%=1
    res% = dll_call4("ModifyToolbar",8,0,0,0)
    res% = dll_call1("RemoveToolbar",1)
  end_if
  dll_off
  terminate

Et là, cela fonctionne sur w7 aussi... Laughing
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

MyDrive Connector - Page 2 Empty
MessageSujet: re   MyDrive Connector - Page 2 EmptySam 25 Jan 2014 - 14:50

Je ne sais pas toi mais moi je commence à devenir 
 rendeer  drunken  geek  jocolor  king  scratch  alien  Suspect  cat  geek  rendeer  drunken

Pour ceux qui aurez la bonne idée de passer à W8 , Jetez le !

Et quand je pense au mal que l' on a avec windows et Jack qui nous balance androïd..... drunken  rendeer  geek  king  alien  pale
Revenir en haut Aller en bas
Klaus

Klaus


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

MyDrive Connector - Page 2 Empty
MessageSujet: Re: MyDrive Connector   MyDrive Connector - Page 2 EmptySam 25 Jan 2014 - 15:03

OK. Je l'ai intégré chez moi, et sous XP, c'est bon aussi. Dont acte, et MERCI !

J'ai modifié mon tuto pour la toolbar en conséquence !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
papydall

papydall


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

MyDrive Connector - Page 2 Empty
MessageSujet: Re: MyDrive Connector   MyDrive Connector - Page 2 EmptySam 25 Jan 2014 - 17:21

 Idea  Idea  Idea  VOICI LA SOLUTION QUI MARCHE A TOUS LES COUPS  Idea  Idea  Idea 

J’ai tout testé : les suggestions de Ygeronimi et celle de Klaus :  rien ne va en voulant sortir par l’icône.
Et puis j’ai voulu tester autre chose en ajoutant un simple STOP entre ModifyToolbar et RemoveToolbar

Code:

   res% = dll_call4("ModifyToolbar",8,0,0,0)
    stop
    res% = dll_call1("RemoveToolbar",1)

ET alors, en répondant au Continue ou non par yes, ça a marché
J’ai remplacé le STOP par un WAIT  5000 : ça marche.
J’ai diminué la valeur du WAIT , ça ne marche plus !
J’ai retourné à WAIT 5000 , tantôt ça marche, tantôt  non.
J’ai remplacé finalement le WAIT par un message et ça marche à tous les coups !

Code:
 rem ============================================================================
Fin:
  timer_off MDC_timer%
Quitter:
    res% = dll_call4("ModifyToolbar",8,0,0,0)
    message "OK on quitte"
    res% = dll_call1("RemoveToolbar",1)
    dll_off : terminate
rem ============================================================================

Allez comprendre maintenant pourquoi ça a marché ?
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

MyDrive Connector - Page 2 Empty
MessageSujet: Re: MyDrive Connector   MyDrive Connector - Page 2 EmptySam 25 Jan 2014 - 17:28

@Ygeronimi,
Passer à W8 n'est pas forcément un choix. Et si c'est possible, j'aime autant que mes codes fonctionne avec.
Mais bon, je suis d'accord avec toi, W8 c'est du Windaube, je regrette XP.
Mais tout comme Jack, je dois regarder devant.

Comme pour beaucoup, j'ai changé de PC dans la précipitation et la facilité, mais j'ai toujours en tête de changer pour MAC ou LINUX, voir avoir un deuxième PC.

J'attend un peu pour téléchargé ton programme car les essais ne sont pas encore terminé, quoique celui que j'ai actuellement fonctionne. Je rappelle que le problème de fermeture qu'a Papydall, moi je ne l'ai pas sous W8.

A+


Dernière édition par Jean Claude le Sam 25 Jan 2014 - 17:33, édité 1 fois
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

MyDrive Connector - Page 2 Empty
MessageSujet: Re: MyDrive Connector   MyDrive Connector - Page 2 EmptySam 25 Jan 2014 - 17:32

On s'est croisé Papydall,

Je constate que, une fois encore, qu'il s'agit de temps de pause ?????

Je laisse le soins à Klaus et Ygeronimi, qui sont à fond dans le sujet, de vérifier ta solution.

A+
Revenir en haut Aller en bas
papydall

papydall


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

MyDrive Connector - Page 2 Empty
MessageSujet: Re: MyDrive Connector   MyDrive Connector - Page 2 EmptySam 25 Jan 2014 - 17:53

Comme on est des impatients, on oublie qu’il faut laisser le temps au temps pour faire son boulot.


Dernière édition par papydall le Sam 25 Jan 2014 - 23:00, édité 1 fois
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Klaus

Klaus


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

MyDrive Connector - Page 2 Empty
MessageSujet: Re: MyDrive Connector   MyDrive Connector - Page 2 EmptySam 25 Jan 2014 - 18:44

Bizarre.

En XP Pro, je n'ai pas besoin de faire une pause ou un message entre ces deux lignes.

J'ai vérifié le code source de la fonction ModifyToolbar code 8: c'est essentiellement une écriture d'un mot de 32 bits dans une adresse à l'intérieur de Windows pour changer l'adresse évènement en cas de changement de dimension de la fenêtre. C'est immédiat - aucune attente n'est requise. Et le code est simplicissime.

Mystère...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

MyDrive Connector - Page 2 Empty
MessageSujet: Re: MyDrive Connector   MyDrive Connector - Page 2 EmptySam 25 Jan 2014 - 19:24

J'ai fait une modif dans KGF.dll, uniquement pour W7. En XP ou Vista, elle sera inactive. Est-ce que vous pouvez recharger KGF.dll (pas de nouveau numéro de version) et réessayer ce programme ? Je serais curieux de savoir si j'ai trouvé une solution...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé





MyDrive Connector - Page 2 Empty
MessageSujet: Re: MyDrive Connector   MyDrive Connector - Page 2 Empty

Revenir en haut Aller en bas
 
MyDrive Connector
Revenir en haut 
Page 2 sur 3Aller à la page : Précédent  1, 2, 3  Suivant
 Sujets similaires
-
» Au sujet de mydrive
» Espaces sur MyDrive
» Partage sur MyDrive
» site mydrive
» Mydrive et Cloudme Ko !!

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: