Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Un sélecteur de dossiers 100 % Panoramic Mar 29 Jan 2019 - 15:48 | |
| J'ai fait un petit code qui permet de sélectionner ou créer un dossier, par une fenêtre de dialogue, en 100 % Panoramic. Voici: - Code:
-
' SearchFolder.bas ' ' Ce module contient une fonction 100 % Panoramic permettant de sélectionner un dossier. ' label chercher, TraiterIciLeDossierTrouve dim d$, no_SF_dossier$ no_SF_dossier$ = "" button 1 : top 1,10 : left 1,10 : caption 1,"Chercher dossier" : on_click 1,chercher end
chercher: if no_SF_dossier$<>"_" then d$ = no_SF_dossier$ SearchFolder(d$,100,0,30,200,200) return TraiterIciLeDossierTrouve: if no_SF_dossier$<>"_" message "On a choisi le dossier: "+no_SF_dossier$ end_if return ' **************************************************************************** ' ******** cette partie est à inclure dans le code, sans modification ******** ' ******** par copier/coller ou #INCLUDE ******** ' ****************************************************************************
sub SearchFolder(dir$,no_start%,no_parent%,x%,y%,w%) ' paramètres: ' dir$ = dossier initial chaîne vide signifie "dossier dans lequel est l'EXE appelant ' no_start% = un numéro d'objet de départ à partir duquel le programme peut créer ses objets iinternes ' no_parent% = numéro de l'objet parent dans lequel le sélecteur doit apparaître ' c%, y% = coordonnées de l'objet sélecteuur à l'écran ' w% = largeur de l'objet sélecteur dim_local i% ' créer les objets nécessaires if variable("no_SF_combo%")=0 then dim no_SF_combo% : ' créer une variable globale pour le combo des dossiers if variable("no_SF_dossier$")=0 then dim no_SF_dossier$ : ' créer une variable globale pour le résultat de la recherche if variable("no_SF_racine$")=0 then dim no_SF_racine$ : ' créer une variable globale pour le dossier initial if variable("no_SF_parent%")=0 then dim no_SF_parent% : ' créer une variable globale pour le numéro de l'objet parent if label("sel_SF_item")=0 then label sel_SF_item : ' définir le label également ' chercher le premier numéro d'objet libre et créer la combo de sélection de dossier si inexistant if no_SF_combo%=0 for i%=no_start% to 30000 if object_exists(i%)=0 then exit_for next i% no_SF_combo% = i% combo no_SF_combo% : hide no_SF_combo% if no_parent%>0 then parent no_parent% top no_SF_combo%,y% : left no_SF_combo%,x% : width no_SF_combo%,w% on_click no_SF_combo%,sel_SF_item end_if if no_parent%>0 then inactive 0 if dir$="" then dir$ = file_extract_path$(param_value$(0)) no_SF_racine$ = dir$ no_SF_parent% = no_parent% folder_select(dir$) show no_SF_combo% end_sub sel_SF_item: sel_SF_item() if label("TraiterIciLeDossierTrouve")=1 then gosub TraiterIciLeDossierTrouve return sub sel_SF_item() dim_local dir$, s$, n%, i% no_SF_dossier$ = "_" dir$ = item_index$(no_SF_combo%) if dir$=".." s$ = no_SF_racine$ n% = len(s$) if n%<=3 message "Oups... on est déjà à la racine !" hide no_SF_combo% active no_SF_parent% exit_sub end_if for i%=n%-1 to 3 step -1 if mid$(s$,i%,1)="" no_SF_dossier$ = left$(s$,i%) hide no_SF_combo% active no_SF_parent% exit_sub end_if next i% no_SF_dossier$ = left$(s$,3) hide no_SF_combo% active no_SF_parent% exit_sub end_if if dir$="<nouveau dossier>" s$ = no_SF_racine$ + "Nouveau dossier" if message_input("Création nouveau dossier","Nouveau dossier:",s$)=1 s$ = message_text$ dir_make s$ no_SF_dossier$ = s$+"" end_if hide no_SF_combo% active no_SF_parent% exit_sub end_if if dir$="<abandon>" no_SF_dossier$ = "_" hide no_SF_combo% active no_SF_parent% exit_sub end_if no_SF_dossier$ = no_SF_racine$+dir$+"" hide no_SF_combo% active no_SF_parent% end_sub
sub folder_select(ini$) dim_local old$, i%, f$ if ini$="" then ini$ = file_extract_path$(param_value$(0)) clear no_SF_combo% old$ = dir_current$ dir_change ini$ f$ = file_find_first$ while f$<>"_" if f$<>"." if dir_exists(f$)=1 item_add no_SF_combo%,f$ end_if end_if f$ = file_find_next$ end_while file_find_close dir_change old$ item_add no_SF_combo%,"<nouveau dossier>" item_add no_SF_combo%,"<abandon>" end_sub
Le code crée une combo dans lequel il y a tous les sous-dossiers du dossier de départ. Un clic sur une de ces lignes sélectionne le dossier. Une première ligne ".." est insérée, permettant de remonter au dossier parent. A la fin, une ligne est ajoutée "<Nouveau dossier>" permettant de créer un dossier, et une autre ligne "<Abandon>" permet d'abandonner la sélection. Le résultat est retournée dans une variable globale no_SF_dossier$. Elle contient "_" si la sélection n'a pas abouti. | |
|
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Un sélecteur de dossiers 100 % Panoramic Mar 29 Jan 2019 - 18:26 | |
| Merci Klaus pour ce petit encas en 100% Pano, Même si on peut faire bien plus avec KGF ! Voici d’ailleurs une copie d'écran de ce qui sera (sûrement) l'explorateur de GPP2. | |
|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Un sélecteur de dossiers 100 % Panoramic Mar 29 Jan 2019 - 23:14 | |
| Chouette, la capture !
C'est un explorateur, donc "légèrement" plus que la simple fonction de recherche d'un dossier, fonction qui manque encore en Panoramic natif.
Je sais bien qu'avec KGF, c'est facile et strictement conforme à Windows (c'est moi qui l'ai écrit, quoi...) utilisant directement l'API de Windows. Mais je cherchais un moyen de le faire en 100 % Panoramic, puisqu'il y a toujours des afficionados du 100 % Panoramic ( et ils ont bien raison !). | |
|
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Un sélecteur de dossiers 100 % Panoramic Mer 30 Jan 2019 - 7:38 | |
| Je sais bien Klaus et je suis totalement d accord avec toi ! Et j'aime aussi défendre le 100% Panoramic. C'était aussi l'occasion de faire un peu de pub pour GPP... | |
|
Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Un sélecteur de dossiers 100 % Panoramic Mer 30 Jan 2019 - 8:55 | |
| Tu peux Minibug. C'est vraiment superbe | |
|
Contenu sponsorisé
| Sujet: Re: Un sélecteur de dossiers 100 % Panoramic | |
| |
|