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
» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
question concernant DIR_DIALOG Emptypar papydall Hier à 16:57

» PANORAMIC V 1
question concernant DIR_DIALOG Emptypar papydall Hier à 3:22

» select intégrés [résolu]
question concernant DIR_DIALOG Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
question concernant DIR_DIALOG Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
question concernant DIR_DIALOG Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
question concernant DIR_DIALOG Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
question concernant DIR_DIALOG Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0
question concernant DIR_DIALOG Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
question concernant DIR_DIALOG Emptypar Klaus Lun 6 Mai 2024 - 11:41

» Gestion d'un système client-serveur.
question concernant DIR_DIALOG Emptypar Klaus Lun 6 Mai 2024 - 10:23

» @Jack
question concernant DIR_DIALOG Emptypar Jack Mar 30 Avr 2024 - 20:40

» Une calculatrice en une ligne de programme
question concernant DIR_DIALOG Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
question concernant DIR_DIALOG Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
question concernant DIR_DIALOG Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
question concernant DIR_DIALOG Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le deal à ne pas rater :
Cartes Pokémon 151 : où trouver le coffret Collection Alakazam-ex ?
Voir le deal

 

 question concernant DIR_DIALOG

Aller en bas 
5 participants
AuteurMessage
Invité
Invité




question concernant DIR_DIALOG Empty
MessageSujet: question concernant DIR_DIALOG   question concernant DIR_DIALOG EmptyVen 7 Jan 2011 - 11:24

Cette instruction je ne l'avais pas encore essayé, et je pensais avoir compris son utilité.
Pour moi, c'état de pouvoir ouvrir une boite de dialog, et de choisir un dossier. Jusqu'à présent, j'étais obligé de choisir dans la boite de dialog, un fichier quelconque pour en extraire le dossier en retirant le fichier choisi.

Et là surprise, rien ne va. Si je veux ouvrir la boite de dialog, je dois me servir de FILE_NAME$, qui comme son nom l'indique, cherche un fichier.

DIR_DIALOG requière 2 paramètres, donc ce n'est pas un objet, et ne se substitue pas à open_dialog entre autre.
File_name ne prend compte du nom que si c'est un fichier. Alors à quoi sert cette fonction?

Code:
  open_dialog 4
  filter 4,"choisir un dossier|*."
  dir_dialog 4,file_name$(4)
  message f$
edit, je vois que j'ai mis message f$, mais il n'est plus utilisé, vu que j'ai mis file_name$ à la place
Revenir en haut Aller en bas
Jack
Admin
Jack


Nombre de messages : 2386
Date d'inscription : 28/05/2007

question concernant DIR_DIALOG Empty
MessageSujet: Re: question concernant DIR_DIALOG   question concernant DIR_DIALOG EmptyVen 7 Jan 2011 - 12:02

Pour utiliser un OPEN_DIALOG ou un SAVE_DIALOG, il faut bien sûr créer l'objet:
OPEN_DIALOG N ou SAVE_DIALOG N
puis utiliser la fonction FILE_NAME$(N)
Cette fonction fait apparaître l'objet et retourne le nom du fichier qui a été choisi par l'utilisateur.
Si l'utilisateur n'a pas choisi de fichier, la fonction retourne "_"

Dernièrement, sur le forum, on a demandé de pouvoir désigner un répertoire dans lequel s'ouvrira un OPEN_DIALOG ou un SAVE_DIALOG lors de l'exécution de la fonction FILE_NAME$(N), c'est la commande DIR_DIALOG N,R qui affecte le répertoire R comme répertoire d'ouverture de l'OPEN_DIALOG ou du SAVE_DIALOG numéro N.

DIR_DIALOG n'est donc pas un objet, mais s'utilise comme FILTER, pour modifier le comportement d'un OPEN_DIALOG ou d'un SAVE_DIALOG.

La séquence d'utilisation d'un OPEN_DIALOG est donc:
1- création: OPEN_DIALOG N

2 - paramétrage facultatif : FILTER et DIR_DIALOG

3 - choix d'un fichier : FILE_NAME$(N)

Pour reprendre ton exemple:
dir_dialog 4,file_name$(4) n'est pas approprié.
Si tu veux que ton OPEN_DIALOG s'ouvre en te montrant les fichiers de ton répertoire c:/rep,
il faut faire:
Code:
dim fichier$
open_dialog 4
dir_dialog 4,"c:/rep"
fichier$=file_name$(4)
Revenir en haut Aller en bas
https://panoramic.1fr1.net
Invité
Invité




question concernant DIR_DIALOG Empty
MessageSujet: Re: question concernant DIR_DIALOG   question concernant DIR_DIALOG EmptyVen 7 Jan 2011 - 13:57

Merci bien pour les explications.
Je ne l'avais pas vu dans ce sens là, et c'est même l'inverse.
Dans un installateur, je voulais définir un dossier d'installation, et pouvoir choisir à partir d'un open_dialog (ce que je pensais être un dir_dialog), le dossier où on va installer. Je vois du coup que ce n'est pas possible, à moins de choisir un fichier quelconque pour extraire le dossier, ce qui ne fait pas très propre.

Ce que je voulais c'est l'inverse.

Ne pourrais t-il pas y avoir une commande DIR_NAME$, en remplacement de FILE_NAME$, pour choisir un dossier?

Cordialement
Revenir en haut Aller en bas
659_minifly




Nombre de messages : 590
Age : 75
Localisation : Valenciennes Nord
Date d'inscription : 29/04/2010

question concernant DIR_DIALOG Empty
MessageSujet: Re: question concernant DIR_DIALOG   question concernant DIR_DIALOG EmptyVen 7 Jan 2011 - 15:43

J'ai le meme probleme . Tu trouvera ici un sousp qui lit et inscrit uniquement les répertoires dans un list.



Code:




Label Sub_New_project,Sub_Configuration,Sub_open_dialog,Sub_Terminate
Label Sub_Choix_List, Rep_List,Sub_ferme_Configuration,Sub_Ferme_Dirlist

Dim  Project_Name$,Nom_Programme_Principale$
Dim  Flag_Project_Name%,Dum%
Dim  X_screen%, Y_screen%,Largeur%,Hauteur%,Marge_Gauche%,Marge_Haute%
Dim  Form_Generale%,Menu_01%,Menu_02%,Menu_03%,Menu_04%,Menu_05%,Menu_06%,Menu_07%
Dim  Menu_08%,Menu_09%,Menu_10%
Dim  Configuration%
Dim  Cont_Projects%,Cont_Models%,Cont_Textures%,Cont_Figures%,Cont_Scenes%
Dim  Cont_Sequences%
Dim  Choix_repertoir%
Dim  Edit_Projects%,Edit_Models%,Edit_Textures%,Edit_Figures%,Edit_Scenes%,Edit_Sequences%

Dim  Butt_Projects%,Butt_Models%,Butt_Textures%,Butt_Figures%,Butt_Scenes%,Butt_Sequences%
Dim  Nom_rep$,Butt_Ferme%,Butt_Dirlist%

Dim  DirList%,List_Dirlist%,Edit_Dirlist%,Chaine$,A$,Test%,Long_Chaine%
Dim  Sous_Chaine$,I%,Repertoire_Courant$,Numero_bouton%

Hide 0

Largeur%=Screen_X
Hauteur%=Screen_y

X_screen%                    = 640
Y_screen%                    = 480

Marge_Gauche%                = ( Largeur%-X_screen% )/2
Marge_Haute%                  = ( Hauteur%-Y_screen% )/2


Form_Generale%                = 2000
Configuration%                = 2001
DirList%                      = 2002

Menu_01%                      = 2101
Menu_02%                      = 2102
Menu_03%                      = 2103
Menu_04%                      = 2104
Menu_05%                      = 2105
Menu_06%                      = 2106
Menu_07%                      = 2107
Menu_08%                      = 2108
Menu_09%                      = 2109
Menu_10%                      = 2110

Cont_Projects%                = 2201
Cont_Models%                  = 2202
Cont_Textures%                = 2203
Cont_Figures%                = 2204
Cont_Scenes%                  = 2205
Cont_Sequences%              = 2206

Edit_Projects%                = 2207
Butt_Projects%                = 2208

Edit_Models%                  = 2209
Butt_Models%                  = 2210

Edit_Textures%                = 2211
Butt_Textures%                = 2212

Edit_Figures%                = 2213
Butt_Figures%                = 2214

Edit_Scenes%                  = 2215
Butt_Scenes%                  = 2216

Edit_Sequences%              = 2217
Butt_Sequences%              = 2218

Choix_repertoir%              = 2219
List_Dirlist%                = 2220
Edit_Dirlist%                = 2221

Butt_Ferme%                  = 2222
Butt_Dirlist%                = 2223

dir_change "C:"
Repertoire_Courant$=Dir_Current$

Form        Form_Generale%
Width      Form_Generale%,X_screen%
Height      Form_Generale%,Y_screen%
Left        Form_Generale%,Marge_Gauche%
Top        Form_Generale%,Marge_Haute%

Command_Target_is Form_Generale%

Main_Menu  Menu_01%

Sub_Menu    Menu_02%
Parent      Menu_02%,Menu_01%
Caption    Menu_02%,"Project"

Sub_Menu    Menu_03%
Parent      Menu_03%,Menu_02%
Caption    Menu_03%,"Configuration..."

Sub_Menu    Menu_04%
Parent      Menu_04%,Menu_02%
Caption    Menu_04%,"New Project..."

' Sub_Menu    Menu_05%
' Parent      Menu_05%,Menu_02%
' Caption    Menu_05%,"Close Project..."
'
' Sub_Menu    Menu_06%
' Parent      Menu_06%,Menu_02%
' Caption    Menu_06%,"New Category..."
'
' Sub_Menu    Menu_07%
' Parent      Menu_07%,Menu_02%
' Caption    Menu_07%,"Add to project..."
'
' Sub_Menu    Menu_08%
' Parent      Menu_08%,Menu_02%
' Caption    Menu_08%,"Copy to project..."
'
' Sub_Menu    Menu_09%
' Parent      Menu_09%,Menu_02%
' Caption    Menu_09%,"Delete from project..."

Sub_Menu    Menu_10%
Parent      Menu_10%,Menu_02%
Caption    Menu_10%,"Exit"

' ******************************************************************************
'                                DirList
' ******************************************************************************
Form    DirList%
left    DirList%,650
top    DirList%,240
width  DirList%,540
height  DirList%,360
caption DirList%,"Configuration"

Command_Target_is DirList%

list    List_Dirlist%
left    List_Dirlist%,10
top    List_Dirlist%,50
width  List_Dirlist%,500
height  List_Dirlist%,230

edit    Edit_Dirlist%
left    Edit_Dirlist%,10
top    Edit_Dirlist%,20
width  Edit_Dirlist%,500

button  Butt_Dirlist%
Left    Butt_Dirlist%,210
top    Butt_Dirlist%,285
Caption Butt_Dirlist%,"Ok"
On_Click Butt_Dirlist%,Sub_Ferme_Dirlist

hide  DirList%

' ******************************************************************************
'                                    Configuration
' ******************************************************************************

form  Configuration%
top    Configuration%,100
left  Configuration%,320
height Configuration%,600
width  Configuration%,555
hide  Configuration%
Command_Target_is Configuration%

container Cont_Projects%
left      Cont_Projects%,10
top      Cont_Projects%,25
width    Cont_Projects%,516
height    Cont_Projects%,60
caption  Cont_Projects%,"Projects "


container Cont_Models%
left      Cont_Models%,10
top      Cont_Models%,105
width    Cont_Models%,516
height    Cont_Models%,60
caption  Cont_Models%,"Anim8or Models "

container Cont_Textures%
left      Cont_Textures%,10
top      Cont_Textures%,185
width    Cont_Textures%,516
height    Cont_Textures%,60
caption  Cont_Textures%,"Anim8or Textures "

container Cont_Figures%
left      Cont_Figures%,10
top      Cont_Figures%,265
width    Cont_Figures%,516
height    Cont_Figures%,60
caption  Cont_Figures%,"Anim8or Figures"

container Cont_Scenes%
left      Cont_Scenes%,10
top      Cont_Scenes%,345
width    Cont_Scenes%,516
height    Cont_Scenes%,60
caption  Cont_Scenes%,"Anim8or Scenes"

container Cont_Sequences%
left      Cont_Sequences%,10
top      Cont_Sequences%,425
width    Cont_Sequences%,516
height    Cont_Sequences%,60
caption  Cont_Sequences%,"Anim8or Sequences"

edit      Edit_Projects%
left      Edit_Projects%,20
top      Edit_Projects%,50
width    Edit_Projects%,409
height    Edit_Projects%,23
Text      Edit_Projects%,Repertoire_Courant$

button    Butt_Projects%
left      Butt_Projects%,450
top      Butt_Projects%,50
width    Butt_Projects%,34
height    Butt_Projects%,23
caption  Butt_Projects%,"..."

edit      Edit_Models%
left      Edit_Models%,20
top      Edit_Models%,130
width    Edit_Models%,409
height    Edit_Models%,23

button    Butt_Models%
left      Butt_Models%,450
top      Butt_Models%,130
width    Butt_Models%,34
height    Butt_Models%,23
caption  Butt_Models%,"..."

edit      Edit_Textures%
left      Edit_Textures%,20
top      Edit_Textures%,210
width    Edit_Textures%,409
height    Edit_Textures%,23

button    Butt_Textures%
left      Butt_Textures%,450
top      Butt_Textures%,210
width    Butt_Textures%,34
height    Butt_Textures%,23
caption  Butt_Textures%,"..."

edit      Edit_Figures%
left      Edit_Figures%,20
top      Edit_Figures%,290
width    Edit_Figures%,409
height    Edit_Figures%,23

button    Butt_Figures%
left      Butt_Figures%,450
top      Butt_Figures%,290
width    Butt_Figures%,34
height    Butt_Figures%,23
caption  Butt_Figures%,"..."

edit      Edit_Scenes%
left      Edit_Scenes%,20
top      Edit_Scenes%,370
width    Edit_Scenes%,409
height    Edit_Scenes%,23

button    Butt_Scenes%
left      Butt_Scenes%,450
top      Butt_Scenes%,370
width    Butt_Scenes%,34
height    Butt_Scenes%,23
caption  Butt_Scenes%,"..."

edit      Edit_Sequences%
left      Edit_Sequences%,20
top      Edit_Sequences%,450
width    Edit_Sequences%,409
height    Edit_Sequences%,23

button    Butt_Sequences%
left      Butt_Sequences%,450
top      Butt_Sequences%,450
width    Butt_Sequences%,34
height    Butt_Sequences%,23
caption  Butt_Sequences%,"..."


button  Butt_Ferme%
Left    Butt_Ferme%,220
top      Butt_Ferme%,510
Caption  Butt_Ferme%,"OK"
on_click Butt_Ferme%,Sub_ferme_Configuration


 Hide  Configuration%




On_Click Menu_03%,Sub_Configuration
On_Click Menu_04%,Sub_New_project
On_Click Menu_10%,Sub_Terminate


end
' ******************************************************************************
'                                  Sous programmes
' ******************************************************************************

Sub_New_project:

' Afficher la boite Message_input
dum%=Message_Input("Project Name","Enter project's name :",message_text$)


Project_Name$= message_text$
print Project_Name$
'
if Dir_exists(Project_Name$) = 1
dum%=Message_confirmation_Yes_no(" Already exist do you want connect to it")
else

dir_change Text$(Edit_Projects%)

' dir_make Text$(Edit_Projects%)+"" + Project_Name$

dir_make Text$(Edit_Textures%)+"" + Project_Name$ + "_Textures"

dir_make Text$( Edit_Models% )+"" + Project_Name$ + "_Models"

dir_make Text$( Edit_Figures% )+"" + Project_Name$ + "_Figures"

dir_make Text$( Edit_Scenes% )+"" + Project_Name$ + "_Scenes"

dir_make Text$( Edit_Sequences% )+"" + Project_Name$ + "_Sequences"

'  dir_make Project_Name$+"_Figures"
'  dir_make Project_Name$+"_Scenes"
'  dir_make Project_Name$+"_Sequences"
end_if

' Initialiser le flag comme quoi le nom du fichier a été donné
Flag_Project_Name%    = 1




return


Sub_Configuration:


show  Configuration%

on_click Butt_Projects%,Sub_Open_dialog
on_click Butt_Models%,Sub_Open_dialog
on_click Butt_Textures%,Sub_Open_dialog
On_Click Butt_Figures%,Sub_Open_dialog
On_Click Butt_Scenes%,Sub_Open_dialog
On_Click Butt_Sequences%,Sub_Open_dialog


return

'  Ouverture du dialogue repertoire
Sub_open_dialog:

Numero_bouton%=Number_click

show        dirList%

Text        Edit_dirList%, Dir_Current$

Item_add    List_DirList%,".."
 
gosub Rep_List

on_click    List_DirList%,Sub_Choix_List


end

return

'  Choisir un repertoire dans la liste
Sub_Choix_List:

test%= item_Index( List_DirList%)

chaine$=item_read$ ( List_DirList%,test%)

if Chaine$=".."

chaine$=Dir_Current$

Long_Chaine%=Len(Dir_Current$)

for i%=1 to Long_Chaine% step 1


chaine$=left$(chaine$,long_chaine%-i%)
Sous_Chaine$=Right$(Chaine$,1)
if    Sous_Chaine$="" then exit_for


next i%
end_if

dir_change chaine$
Text Edit_dirList%, Dir_Current$

Repertoire_Courant$=Dir_Current$



if Numero_bouton%=Butt_Projects% then Text Edit_Projects%,Repertoire_Courant$
if Numero_bouton%=Butt_Models% then Text Edit_Models%,Repertoire_Courant$
if Numero_bouton%=Butt_Textures% then Text Edit_Textures%,Repertoire_Courant$
if Numero_bouton%=Butt_Figures% then Text Edit_Figures%,Repertoire_Courant$
if Numero_bouton%=Butt_Scenes% then Text Edit_Scenes%,Repertoire_Courant$
if Numero_bouton%=Butt_Sequences% then Text Edit_Sequences%,Repertoire_Courant$

gosub Rep_list

return

'    Ecrire les repertoires dans list
Rep_List:

clear List_DirList%

 item_add  List_DirList%,".."

a$ = file_find_first$

while a$<>"_"

      Test%=File_Exists(a$)
     
      if Test%=0 then item_add  List_DirList%,a$
     
    a$ = file_find_next$
   
end_while

file_find_close

return

Sub_ferme_Configuration:

hide configuration%

return

Sub_Ferme_Dirlist:

Hide Dirlist%

Return

Sub_Terminate:
Terminate
return

lance le programme et puis configuration dans le list tu n'aura que des répertoires.
Salut

La premiere ligne dans est un ".." en cliquant dessus tu remonte d'un répertoire.
Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

question concernant DIR_DIALOG Empty
MessageSujet: Re: question concernant DIR_DIALOG   question concernant DIR_DIALOG EmptyVen 7 Jan 2011 - 16:13

@Jack
Justement, ce qui aurait été bien, ça aurait été de pouvoir 'filtrer' les répertoires dans la commande FILTER, au même titre que les fichiers, pour n'afficher que les répertoires et rendre un nom de répertoire au lieu d'un fichier.
Ça ne devrait pas être trop difficile à réaliser, et il suffit de convenir d'un filtre particulier (par exemple *dir).
A priori on ne sait pas faire avec ce qu'on a ?
Revenir en haut Aller en bas
659_minifly




Nombre de messages : 590
Age : 75
Localisation : Valenciennes Nord
Date d'inscription : 29/04/2010

question concernant DIR_DIALOG Empty
MessageSujet: Re: question concernant DIR_DIALOG   question concernant DIR_DIALOG EmptyVen 7 Jan 2011 - 16:18

Malheureusement avec mon programme on n'a pas les icones pale
Revenir en haut Aller en bas
Klaus

Klaus


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

question concernant DIR_DIALOG Empty
MessageSujet: Re: question concernant DIR_DIALOG   question concernant DIR_DIALOG EmptyVen 7 Jan 2011 - 18:56

Dans ma dll KGF.dll, il y a une fonction qui permet de sélectionner un répertoire SANS création no de fichier ni de répertoire, tout en spécifiant un répertoire de départ:
Code:

res% = DLL_call4("FolderSelect",adr(racine$),adr(dossier$),len(dossier$),mode%)
'                        racine$ est lé répertoire de départ de la recherche
'                        dossier$ reçoit le nom de dossier sélectionné ou créé au retour
'                        mode% : 0 si sélection uniquement sans création
'                                        1 si sélection avec création possible
'                        res%: 0 si abandon
'                                  1 si choix valide 
Il y a d'autres fonctions de gestion de fichiers.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




question concernant DIR_DIALOG Empty
MessageSujet: Re: question concernant DIR_DIALOG   question concernant DIR_DIALOG EmptyVen 7 Jan 2011 - 19:27

C'est pas mal.
Mais j'en ai plus besoin (pour ce programme)

Je me suis rendu compte dans la journée, qu'avec 7zip, on pouvait s'en servir comme installateur, et ça marche bien.
Donc la prochaine fois que je mettrais une application, je me servirai du truc.

Dans le cas où un dossier imposé d'installation pour un programme, ne convient pas, c'est winzip qui s'en charge.

Maintenant que j'y pense, je ne sais pas si cela aurait marché (peut-être oui, si la dll est dans le dossier de winzip), pour faire une installation auto.
Revenir en haut Aller en bas
Invité
Invité




question concernant DIR_DIALOG Empty
MessageSujet: Re: question concernant DIR_DIALOG   question concernant DIR_DIALOG EmptyMer 16 Fév 2011 - 23:32

Bonsoir Klaus,

Je viens de faire l'essai de ta dll. Je pensais récupérer le nom du dossier, et la racine, mais ce n'est pas ce que fait le programme.

Y-a-t'il une possibilité de le faire. Je pensais l'utiliser pour faire un fichier ini.
Code:

dim dossier$,racine$,mode%,res%
mode%=0

dll_on "C:\TESTE\KGF.dll"
res% = DLL_call4("FolderSelect",adr(racine$),adr(dossier$),len(dossier$),mode%)

message "dossier$:"+dossier$+chr$(13)+"  racine$:"+racine$
' dossier$ et racine$ sont vide au retour. une fois qu'on a choisi le dossier
' dans la boite de dialogue

comment récupérer les variables dossier$ et racine$. (je ne sais pas si racine$ est important, vu que je ne sais pas ce que l'on récupère).

Merci
Revenir en haut Aller en bas
Invité
Invité




question concernant DIR_DIALOG Empty
MessageSujet: Re: question concernant DIR_DIALOG   question concernant DIR_DIALOG EmptyMer 16 Fév 2011 - 23:46

Je suis désolé pour l'instant. Je ne sais pas si ça marche, mais je me rend compte que le programme lancé, était un programme d'essai que j'avais commencé à faire pour faire un installateur de programme, mais les lignes étaient beaucoup plus haut, et je ne l'avais pas vu. Une bourde monumentale de ma part. J'espère tout fois pouvoir récupérer le nom du dossier.

Avec mes excuses... Embarassed
Apparemment je ne récupère rien finalement confused
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 55
Localisation : Valence
Date d'inscription : 02/07/2010

question concernant DIR_DIALOG Empty
MessageSujet: Re: question concernant DIR_DIALOG   question concernant DIR_DIALOG EmptyJeu 17 Fév 2011 - 7:26

Bonjour cosmos,

J'ai relu tous les posts et je ne comprend pas très bien ce que tu souhaites, pourrais-tu préciser ?

- Les commandes Open_dialog , Save_dialog, Filter, dir_dialog sont bien expliquées par Jack,
- 7Zip fait apparemment ce que tu souhaites
- La Dll de Klaus te permet de sélectionner un répertoire

Au final, je n'y comprend plus rien Wink

sinon tu as:

ZipInstaller

une preference pour celui-ci :
NSIS
et un petit utilitaire pour NSIS : Mihov NSIS Helper

A+
Nardo
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Invité
Invité




question concernant DIR_DIALOG Empty
MessageSujet: Re: question concernant DIR_DIALOG   question concernant DIR_DIALOG EmptyJeu 17 Fév 2011 - 9:01

Je répond très rapidement, je pars au bois. Je reprendrais si nécessaire pour plus de précision dans la journée.
J'avais fait l'essai de la dll de Klaus, et j'obtiens rien en retour?; et j'ai posé la question.

J'avais effectivement trouvé une solution, mais cela en regardant mon programme, ça ne suffit pas, et je voulais lancer un autre programme pour compléter l'installation. Peut-être cela est possible avec 7ZIP, mais ne parlant pas l'anglais, et employant des expressions que je ne comprends pas, dans les compléments il y a peut-être la solution.

Mais finalement je vais compléter par un programme Panoramic, et ceci grâce à minifly qui a eu une bonne idée.

Le programme que j'ai fait depuis montre qu'on peut faire une boite de dialogue à part:
Ceci n'est pas l'installateur, vous l'aurez lorsque je mettrais le programme qui l'accompagne dans le mois, il n'est pas fini, et il y a les testes.

Code:



width 0,500
dir_change "C:\"
dim a$,test%,f$ ,a%

label choix,dossier ,er  ,disque

list 1: width 1,200:height 1,300:on_click 1,choix
list 2: width 2,200:left 2,210:height 2,300

alpha 3:top 3,310:caption 3,"disque:"
list 4:top 4,330:width 4,100 :on_click 4,disque

' open_dialog 5:f$=file_name$(5)

on_error_goto er
for a%=asc("C") to asc("Z")
  a$= chr$(a%)+":"
  if dir_exists(a$)=1 then item_add 4,a$
next a%
gosub dossier

end
' ==============================================
er:
return

dossier:
  item_add  1,".."
  a$ = file_find_first$
  while a$<>"_"
      Test%=File_Exists(a$)
      if Test%=0
        item_add  1,a$
      else
        item_add 2,a$
      end_if
      a$ = file_find_next$
  end_while

file_find_close
return
disque:
f$= item_index$(4)+"\"
dir_change f$:clear 1
gosub dossier
return

choix:
  F$=item_index$(1)
      dir_change f$ : clear 1
      clear 2
      a$ = file_find_first$
      while a$<>"_"
        Test%=File_Exists(a$)
        if Test%=1 then item_add  2,a$
        a$ = file_find_next$
      end_while
      file_find_close
  gosub dossier

return

Il n'est encore optimisé, car à l'instant j'ai encore apporté des modifications.
J'ai parfois cette erreur:
question concernant DIR_DIALOG Erreurdisque

cela viens je crois de
Code:
 if dir_exists(a$)=1 then item_add 4,a$
et en cliquant sur continuer, le programme continu.
@+, il me faut partir
Revenir en haut Aller en bas
Klaus

Klaus


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

question concernant DIR_DIALOG Empty
MessageSujet: Re: question concernant DIR_DIALOG   question concernant DIR_DIALOG EmptyJeu 17 Fév 2011 - 10:44

J'ai regardé ton programme, et il semble marcher parfaitement. Même avec des lecteurs réseau. Je n'ai pas l'erreur que tu mentionnes, quelque soit le disque ou le répertoire choisi, quelque soit le nombre de lancements. As-tu un fichier ou un répertoire endommagé ? Passe un FDISK ou un autre outil de vérification de la structure du disque.

Quant à ma DLL, j'ai tout retesté et je n'ai pas trouvé d'anomalie. Peux-tu me dire ce que tu essaies d'utiliser exactement et ce que tu espères obtenir ?
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




question concernant DIR_DIALOG Empty
MessageSujet: Re: question concernant DIR_DIALOG   question concernant DIR_DIALOG EmptyJeu 17 Fév 2011 - 13:00

Bonjour Klaus,
Pour le programme que j'ai mis en teste de ma part, il y a un programme endommagé sur une clé usb.
Ok, si je lis avec open_dialog la clé usb, il n'y a pas de problème, mais dir_exists ne l’apprécie pas. Je ferais avec.

Quand à ta dll, as-tu essayé le programme que j'ai mis hier à 23.46h? dans message, je n'ai que des chaines vides au retour. Dossier$ est vide ainsi que racine$. Est-ce une mauvaise utilisation? Comment vois-tu la chose?

Hier j'aurai pu éviter de poster la question, mais je me suis trouvé avec un programme d'installation que j'avais commencé en début janvier, et pratiquement lancé qu'une fois, vu que j'avais trouvé une autre solution. Je ne me suis pas rappelé que c'était mon programme. J'ai pensé que cela venait de la dll. Idiot que je suis! Embarassed confused
Revenir en haut Aller en bas
Klaus

Klaus


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

question concernant DIR_DIALOG Empty
MessageSujet: Re: question concernant DIR_DIALOG   question concernant DIR_DIALOG EmptyJeu 17 Fév 2011 - 18:07

OK, j'ai vu. Essaie comme ceci:
Code:

dim dossier$,racine$,mode%,res%
mode%=0

dll_on "KGF.dll"

racine$ = "C:\"              : ' klaus
dossier$ = string$(255," ")  : ' klaus
res% = DLL_call4("FolderSelect",adr(racine$),adr(dossier$),len(dossier$),mode%)

message "dossier$:"+dossier$+chr$(13)+"  racine$:"+racine$
' dossier$ et racine$ sont vide au retour. une fois qu'on a choisi le dossier
' dans la boite de dialogue

J'ai simplement rajouté deux lignes. La première charge quelque chose dans la variable racine$. Tu peux y mettre n'importe quel disque/chemin: c'est de là que partira la recherche. La deuxième construit un string de 255 caractères (des espaces). Pourquoi ? Parce que ma DLL n'est pas autorisée à créer un string dans Panoramic, et j'espère que ce sera possible avec les futurs plugins. Donc, la seule solution pour retourner un string, est de réserver la place d'abord en Panoramic, de passer l'adresse en paramètre à la DLL, et dans la DLL, écrire le texte en écrasant l'existant, à partir de l'adresse fournie, en prenant soin de se limiter à la longueur réelle du string. Donc, dans ton programme, tu passes bien la variable dossier$, mais elle est créée vide, donc avec une longueur zéro, et on ne peut rien retourner du tout !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




question concernant DIR_DIALOG Empty
MessageSujet: Re: question concernant DIR_DIALOG   question concernant DIR_DIALOG EmptyJeu 17 Fév 2011 - 18:37

Et bien voilà, c'est gagné.
Merci
Revenir en haut Aller en bas
Invité
Invité




question concernant DIR_DIALOG Empty
MessageSujet: Re: question concernant DIR_DIALOG   question concernant DIR_DIALOG EmptyJeu 17 Fév 2011 - 19:44

Je fais le teste avec ta dll, ne sachant pas au final quel procédé je vais choisir. J'ai remarqué une chose: lorsqu'on a le retour du dossier de la dll, le programme est réduit.
Code:

' teste choix dossier
label chemin ,accepte

dim racine$,dossier$,res%,mode%
width 0,800:height 0,400:left 0,screen_x/2-400:top 0,screen_y/2-200:caption 0,"installation"
  color 0,0,0,255:font_color 0,255,255,0:font_size 0,12

alpha 1:top 1,50:left 1,100: font_size 1,30 :font_italic 1:font_bold 1:font_name 1,"Cooper Black"
      caption 1,"Installation du programme"+chr$(13)+" Archivage de documents"
alpha 2:top 2,150:left 2,100:font_color 2,255,255,255:font_size 2,14:caption 2,"le programme s'installe:"
edit  3:top 3,180:left 3,100:width 3,500:font_color 3,0,0,0
      text 3,"C:\Archivage"
button 5:top 5,180:left 5,650:width 5,30:font_bold 5:font_size 5,18:caption 5,"..._"
      on_click 5,chemin
button 6:top 6,250:left 6,650:caption 6,"accepte":on_click 6,accepte
 end
chemin:
  dll_on "KGF.dll"
  racine$ = "C:\" : mode%=0            : ' klaus
  dossier$ = string$(255," ")  : ' klaus
 
  res% = DLL_call4("FolderSelect",adr(racine$),adr(dossier$),len(dossier$),mode%)
  text 3,dossier$
  dll_off
return

accepte:
return

Ensuite il serait bien de pouvoir si cela est possible, et je crois que le teste du programme le montre, ce serait de pouvoir placer la boite dialogue où on le souhaite. Quant penses-tu?

De toute façon j'ai une solution de rechange.
Merci de ton attention.

Je suis en train de penser: serez t-il possible de récupérer les noms courts directement pour mettre l'adresse d'une instruction execute ?
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 55
Localisation : Valence
Date d'inscription : 02/07/2010

question concernant DIR_DIALOG Empty
MessageSujet: Re: question concernant DIR_DIALOG   question concernant DIR_DIALOG EmptyJeu 17 Fév 2011 - 22:01

A mon avis, il vaut mieux conserver les chemins longs au niveau des dll, quitte à passer par un intermédiaire (ou un flag supplementaire lors de l'appel à la dll) pour obtenir les chemins courts.

Je ne sais plus si c'est Klaus ou JL35 mais quelqu'un avait donné une astuce pour convertir en chemin court...
Ca me fait penser qu'il faudrait peut être rajouter un test dans Delphi concernant les chaines de caractères pour s'assurer que la chaine n'est pas vide, au quel cas la fonction renvoie zéro en valeur de retour.... (faut bien qu'elle serve à quelque chose, cette valeur de retour ! Wink )

Revenir en haut Aller en bas
http://nardo26.lescigales.org
Invité
Invité




question concernant DIR_DIALOG Empty
MessageSujet: Re: question concernant DIR_DIALOG   question concernant DIR_DIALOG EmptyJeu 17 Fév 2011 - 22:59

C'est Klaus qui a fait un programme pour avoir des noms courts.
C'est très pratique pour la construction d'un programme, en tant que "programmeur".
Mais dans un programme d'installation, l'envie n'est pas de demander au "client" (vilain mot), de faire le travail de conversion.

Il pourrait y avoir un flag de réception, on récupère soit le mot long ou court.
Reste que ce travail, je ne veux pas l'imposer à Klaus qui se dévoue beaucoup à nos demandes. Je pense qu'il me faudra un mot court, et dans mon cas c'est l'emplacement d'appel au scanner, mais si un programme est installé en program files, on connait déjà cette partie là ("C:\PROGRA~1\). Reste qu'il n'y est pas d'espaces dans le reste.

Je sais que je suis en train de me donner beaucoup de mal pour ce programme, qui certainement n'intéresse que moi, mais c'est plus un pari envers moi-même que l’intérêt du programme. De plus si cela fonctionne, ce pourrait servir d'exemple pour d'autre type de programme, certainement plus intéressant que le mien.

Chaque fois que l'on met un programme sur le forum, il y a toujours quelqu'un qui a un problème pour une raison ou une autre. Le but est de mettre au point un bon système de transfert, comme ont les programmes du commerce.

En ce qui concerne le scanneur, j'utilise un programme que j'ai téléchargé. Mais j'ai trouvé dans "systeme32" ce programme qui peut-être un point de départ: "wiaacmgr.exe". C'est l'assistant du scanneur ou d'un appareil numérique. Je suppose que tout le monde a ce programme. Il pourrait servir de programme par défaut dans un premier temps, et là pas besoin du chemin complet.
Revenir en haut Aller en bas
Klaus

Klaus


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

question concernant DIR_DIALOG Empty
MessageSujet: Re: question concernant DIR_DIALOG   question concernant DIR_DIALOG EmptyJeu 17 Fév 2011 - 23:20

@Cosmos70:
1. Pour les noms courts, le mieux serait d'enchaîner un deuxième appel de fonction DLL pour convertir le nom nom obtenu en nom court. Mais as-tu vraiment besoin d'un nom court ? Ne peux-tu pas passer le nom long de la manière suivante:
Code:

nom_du_fichier_complet$ = chr$(34)+dossier$+nom_du_fichier$"+chr$(34)
Une telle construction passe comme paramètre dans un fichier de commandes *.bat.

2. On n'a aucune influence sur le placement de la fenêtre du dialogue de recherche de répertoire. C'est une foncion windows dont le placement est automatique.

3. Je n'ai pas constaté de minimisation du programme au retour de l'appel de ma DLL. La variable de retour est bien chargée et le résultat s'affiche, le programme restant affiché en mode normal...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




question concernant DIR_DIALOG Empty
MessageSujet: Re: question concernant DIR_DIALOG   question concernant DIR_DIALOG EmptyJeu 17 Fév 2011 - 23:30

Tu as une bonne idée pour les noms noms. Comme tu vois, je ne pense pas à tout, à partir du moment que cela marche.

Pour le retour de la dll, chez moi, le programme disparait, et je dois le ressortir en cliquant sur l'icône dans la barre de tâche, et ça c'est un problème important.

Je viens d'essayer plusieurs programmes selon ta méthode, et cela ne marche pas.
Un exemple:
Code:
dim prg$:prg$=chr$(34)+"C:\Program Files\aida\aida32.exe"+chr$(34)
message file_exists(prg$)
execute_wait prg$
Revenir en haut Aller en bas
Klaus

Klaus


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

question concernant DIR_DIALOG Empty
MessageSujet: Re: question concernant DIR_DIALOG   question concernant DIR_DIALOG EmptyVen 18 Fév 2011 - 1:24

Effectivement, les commandes EXECUTE et EXECUTE_WAIT ont besoin du nom court, bien que ce ne soit pas documenté. Dommage, mais il n'y a pas d'autre solution que d'appeler la fonction de calcul du nom court.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé





question concernant DIR_DIALOG Empty
MessageSujet: Re: question concernant DIR_DIALOG   question concernant DIR_DIALOG Empty

Revenir en haut Aller en bas
 
question concernant DIR_DIALOG
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Question sur KGF
» Question sur KGF
» question de while
» Poursuite dans l'IDE
» Question ?

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: