Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: open dialog Dim 19 Aoû 2012 - 22:47 | |
| J'ai vu dans un post que je ne retrouve pas la possibilité de sélectionner un dossier et non pas un fichier je pense même que c'était une astuce de klaus
quelqu'un se souviendrait il de ce post ? | |
|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: open dialog Dim 19 Aoû 2012 - 22:58 | |
| Tout ce qu'on peut faire en Panoramic, c'est de prédéfinir le répertoire de début de recherche, par la commande DIR_DIALOG. Mais cela ne permet pas de chercher un répertoire, uniquement un fichier.
C'est pourquoi j'ai créé des fonctions de recherche de répertoires dans KGF.dll - cela permet de chercher un répertoire, avec un sans création du répertoire. Regarde dans l'aide... | |
|
Invité Invité
| Sujet: Re: open dialog Lun 20 Aoû 2012 - 1:00 | |
| Bonsoir Pour faire tout en panoramic, ça existe. J'ai déjà publié, mais je crois en réponse à autre chose. Je peux choisir les disques, les dossiers ou les fichiers. Mais au départ, c'est une astuce de Minifly je crois. Mais il me semble qu'il a aussi publié quelque chose de similaire que je n'ai pas testé. |
|
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Lun 20 Aoû 2012 - 12:39 | |
| @ Cosmos70, Je pensais bien que j'avais vu çà quelque part... Tu pourrais me mettre çà dans ce post ou le lien (si tu le retrouves ), svp? | |
|
Invité Invité
| Sujet: Re: open dialog Lun 20 Aoû 2012 - 12:44 | |
| Ok je vais essayer de le retrouver, car ça devient le bordel sur mon ordi et mes clés usb. C'est d'ailleurs en parti pour cela que je voudrais faire aboutir le pagiciel. Cela devient bien visible sur ce que j'entrevois, mais pour l'instant cela ne concerne que les memo. Mais maintenant ce sera plus simple. |
|
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Lun 20 Aoû 2012 - 13:02 | |
| @ Cosmos, Ne t'inquiètes pas, çà devient le foutoir sur le mien aussi... J'ai beau essayer de changer et rechanger d'organisation, rien n'y fait... Je me rappelle avoir vu ce post mais impossible d'y remettre la main dessus... | |
|
Invité Invité
| Sujet: Re: open dialog Lun 20 Aoû 2012 - 13:24 | |
| J'en ai retrouvé un, mais je crois que je l'avais un peu simplifié. Il s'agit d'un programme qui fonctionne comme un include, et comme il est peu documenté (c'est mon problème), je crois que ça fonctionne (après l'voir intégré dans le programme) en mettant à show la variable suivante: OBJ_DIR Je vois qu'avant d'appeler le programme, il faut définir a, qui est un passage de paramètre pour le premier objet de la boite. Ainsi a=100, ensuite #include le programme, et les objets commenceront à 100. Les objets étant nommés, il faut reprendre les noms des objets de la boite. En ligne 20, j'ai mis hide de côté, pour faire les premiers testes. Il y a longtemps que j'ai fait ce programme, et il était aux oubliettes pour moi. En regardant le programme (je me souviens je l'avais fait pour faire un installateur), on peut récupérer les infos qu'on veut, en lisant les edit, ou avec item_index$(), J'espère que cela conviendra. - Code:
-
rem montre une boite de dialogue servant à définir les dossiers, appelé comme #INCLUDE rem les numéros sont définis par le programe appelant et transmis par la variable "a" if variable("a")=0 then dim a:a=1 :' seulement pour la mise au point, vu que a est définit ailleurs dans le programme appelant if variable("OBJ_")=0 then dim OBJ_ if variable("DIR_a%")=0 then dim DIR_a% if variable("DIR_a$")=0 then dim DIR_a$ if variable("DIR_f$")=0 then dim DIR_f$ if variable("DIR_test%")=0 then dim DIR_test% if variable("DIR_dossier$")=0 then dim DIR_dossier$ if variable("OBJ_DIR")=0 then dim OBJ_DIR if variable("DIR_fichier$")=0 then dim DIR_FICHIER$ if variable("ini_DIR%")=0 then dim ini_dir% if variable("OBJ_edit")=0 then dim OBJ_edit if variable("OBJ_sortir")=0 then dim OBJ_sortir if variable("OBJ_accepte")=0 then dim OBJ_accepte rem passage de paramètres depuis le programme appelant OBJ_=a : ' ainsi il n'est pas nécessaire de reprendre le programme, transmis par le programme appelant DIR_Fichier$=dir_current$ :' pour rétablir à la sorti le dossier courant avant de lire ce programme OBJ_DIR=OBJ_ form OBJ_DIR :command_target_is OBJ_DIR :' hide OBJ_DIR width OBJ_DIR,445:border_hide OBJ_DIR:color OBJ_DIR,180,180,170:top OBJ_DIR,010:left OBJ_DIR,500 :height OBJ_DIR,525 dir_change "C:\"
label DIR_dossier ,DIR_disque , DIR_choix ,DIR_impose ,DIR_retour ,DIR_exit,DIR_ferme,DIR_sorti,ini_DIR,DIR_end
on_close OBJ_DIR,DIR_ferme OBJ_DIR=OBJ_+1 :' 16 alpha OBJ_DIR:top OBJ_DIR, 5:left OBJ_DIR,100:font_bold OBJ_DIR:font_size OBJ_DIR,10:' font_color OBJ_DIR,204,204,153 caption OBJ_DIR,"choisir le dossier d'installation"
OBJ_DIR=OBJ_+2 :' 15 edit OBJ_DIR:top OBJ_DIR,35:left OBJ_DIR,5:width OBJ_DIR,435:font_size OBJ_DIR,12:font_bold OBJ_DIR:color OBJ_DIR,255,255,153 :OBJ_edit=OBJ_DIR hint obj_dir,obj_dir OBJ_DIR=OBJ_+3 :' 19 alpha OBJ_DIR:top OBJ_DIR,65:left OBJ_DIR,80:font_color OBJ_DIR,255,255,255:font_bold OBJ_DIR:font_size OBJ_DIR,10:caption OBJ_DIR,"dossier" OBJ_DIR=OBJ_+4 :' 10 list OBJ_DIR: top OBJ_DIR,85:left OBJ_DIR,5:width OBJ_DIR,230:height OBJ_DIR,390:font_size OBJ_DIR,12:font_bold OBJ_DIR:color OBJ_DIR,255,255,204:on_click OBJ_DIR,DIR_choix OBJ_DIR=OBJ_+5 :' 11 list OBJ_DIR: top OBJ_DIR,85:width OBJ_DIR,200:left OBJ_DIR,240:height OBJ_DIR,305:font_color OBJ_DIR,160,160,160 OBJ_DIR=OBJ_+6 :' 13 alpha OBJ_DIR:top OBJ_DIR,397:left OBJ_DIR,245:font_color OBJ_DIR,255,255,255:font_bold OBJ_DIR:font_size OBJ_DIR,10:caption OBJ_DIR,"Lecteur:" OBJ_DIR=OBJ_+7 :' 14 list OBJ_DIR:top OBJ_DIR,415:left OBJ_DIR,245:height OBJ_DIR,60:width OBJ_DIR,50:font_size OBJ_DIR,12:color OBJ_DIR,255,255,210 :on_click OBJ_DIR,DIR_disque
OBJ_DIR=OBJ_+8 :' 18 edit OBJ_DIR:top OBJ_DIR,490:left OBJ_DIR,170:width OBJ_DIR,270:font_size OBJ_DIR,12:font_bold OBJ_DIR:color OBJ_DIR,255,255,153:on_change OBJ_DIR,DIR_impose
OBJ_DIR=OBJ_+9 :' 20 button OBJ_DIR:top OBJ_DIR,410:left OBJ_DIR,330:caption OBJ_DIR,"sortir" :on_click OBJ_DIR,DIR_retour: OBJ_accepte =OBJ_DIR OBJ_DIR=OBJ_+10 :' 21 button OBJ_DIR:top OBJ_DIR,450:left OBJ_DIR,330:caption OBJ_DIR,"accepter" :on_click OBJ_DIR,DIR_exit : OBJ_sortir =OBJ_DIR
OBJ_DIR=OBJ_+11 :' 17 alpha OBJ_DIR:top OBJ_DIR,500:left OBJ_DIR,5:font_color OBJ_DIR,255,255,255:font_bold OBJ_DIR:font_size OBJ_DIR,10:caption OBJ_DIR,"créé nouveau dossier :"
OBJ_DIR=OBJ_ :command_target_is 0 gosub ini_DIR ' goto DIR_sorti :' pour include DIR_end:
end ' ==============================================
ini_DIR: to_foreground OBJ_ if ini_dir%=0 for DIR_a%=asc("C") to asc("Z") DIR_a$= chr$(DIR_a%)+":" : if dir_exists(DIR_a$)=1 then item_add OBJ_+7,DIR_a$ next DIR_a% ini_dir%=1 end_if return
DIR_dossier: gosub ini_dir clear OBJ_+4:clear OBJ_+5 item_add OBJ_+4,".." DIR_a$ = file_find_first$ while DIR_a$<>"_" DIR_test%=File_Exists(DIR_a$) if DIR_test%=0 item_add OBJ_+4,DIR_a$ else item_add OBJ_+5,DIR_a$ end_if DIR_a$ = file_find_next$ end_while file_find_close return DIR_disque: gosub ini_dir dir_change "C:\" DIR_f$= item_index$(OBJ_+7):DIR_dossier$=DIR_f$ dir_change DIR_f$ : gosub DIR_dossier return
DIR_choix: gosub ini_dir DIR_f$=item_index$(OBJ_+4) dir_change DIR_f$ if item_index(OBJ_+4)>1 DIR_dossier$=DIR_dossier$+"\"+DIR_f$ else for DIR_a%=len(DIR_dossier$) to 1 step -1 if mid$(DIR_dossier$,DIR_a%,1)="\" then exit_for next DIR_a% if DIR_a%>2 then DIR_dossier$=left$(DIR_dossier$,DIR_a%-1) end_if gosub DIR_dossier gosub DIR_impose return
DIR_impose: if text$(OBJ_+8)<>"" then text OBJ_+2,DIR_dossier$+"\"+text$(OBJ_+8) :else:text OBJ_+2,DIR_dossier$ return
DIR_exit: hide OBJ_ active 0:DIR_dossier$="_" :text OBJ_+2,"_" if DIR_f$="" or DIR_f$="_" else DIR_f$=left$(DIR_f$,DIR_a%-1) :dir_change DIR_fichier$:hide OBJ_ end_if message DIR_f$ return
DIR_retour: clipboard_string_copy text$(OBJ_+2) :dir_change DIR_Fichier$: hide OBJ_ message DIR_f$ return
DIR_ferme: terminate
DIR_sorti:
dir_change DIR_fichier$: hide OBJ_
Avec la commande: if variable("a")=0 then dim a:a=1 :' seulement pour la mise au point on peut tester le programme. Pour fonctionner en include, il faut faire la définition de a dans le programme principal, pour le numéro d'objet. Ainsi la ligne en question dans l'include n'est pas lu. Le foutoir, c'est depuis que j'ai changé d'ordi, et par manque de place, je mets où je peux. |
|
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Lun 20 Aoû 2012 - 13:56 | |
| Ouahou!...en effet... il y a quelques lignes... Je vais étudier le truc... Actuellement, j'extrait le nom du dossier d'un fichier puis je charge tous les fichiers de la même extension... (c'est un peu brouillon ) | |
|
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mar 21 Aoû 2012 - 20:32 | |
| Quelqu'un sait il à quel moment filename$() prends l'adresse du fichier
au click de validation ou à la sélection du fichier ? | |
|