Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

State Of The Map 2024

#1 Thu 10 March 2011 17:48

uppie
Juste Inscrit !
Date d'inscription: 24 Jan 2011
Messages: 8

MapBasic 10.5 : Créer une sous boite de dialogue pour enregister MEP

Bonjour à tous,
Je m'initie à la programmation, c'est super mais un peu prise de tête aussi smile

J'ai deux soucis:

1) A partir d'une boîte de dialogue existante j'aimerai créer une sous fenêtre qui aurait pour fonction sauvegarder les fenêtres de mise en page dans un répertoire définit au moment de l'enregistrement.

Quelqu'un a une idée?

2) autre problème:

La fonction filesaveas() qui suit ne fonctionne pas non plus:

Declare sub main

dim NomFichier as string

Sub main

NomFichier = FileSaveAsDlg("","Test.wor","Indiquer le chemin d'accès")
If NomFichier <> "" then
Save Workspace as NomFichier

end if
end sub


MP me met: "Incorrect number of arguments to fonction"

Voilà, si quelqu'un peu me donner un petit coup de main ce serait vraiment sympa et à charge de revanche (dans quelques années)!

yoko

Hors ligne

 

#2 Thu 10 March 2011 19:12

jean94
Participant assidu
Date d'inscription: 13 Aug 2009
Messages: 436

Re: MapBasic 10.5 : Créer une sous boite de dialogue pour enregister MEP

Bonjour,

Pour ton point 1..j'ai déja imaginer quelque chose du genre, mais pour se faire il te faudrait créer un fichier text qui garde en mémoire les enregistrement précédent (si j'ai bien comprise ce que tu veux faire) et qui est ensuite lu lors de l'affichage de ta boite de dialogue (sous fenêtre porte a confusion).

Pour ton point 2, il te manque un argument

Code:

Declare sub main

dim NomFichier as string

Sub main

NomFichier = FileSaveAsDlg("","Test",".wor","Indiquer le chemin d'accès")
If NomFichier <> "" then
Save Workspace as NomFichier

end if
end sub

A+
JF

Hors ligne

 

#3 Fri 11 March 2011 10:05

uppie
Juste Inscrit !
Date d'inscription: 24 Jan 2011
Messages: 8

Re: MapBasic 10.5 : Créer une sous boite de dialogue pour enregister MEP

Merci JF pour le deuxième point, c'est bon ça a fonctionné!

Sinon pour le premier point, j'essaye de réexpliquer:

Un générateur d'Atlas a déjà été créé pour une précédente étude, le chemin d'accès du répertoire a été écrit en "dur" sur le programme, maintenant ce qui serait bien ce serait qu'il puisse être défini après coup pour être appliqué à d'autres projet.

J'avais penser à une première boîte de dialogue qui gère l'ID des fenêtres et la mise en page associée, puis une seconde boîte de dialogue qui proposerait le répertoire de sauvegarde.

Sinon la fonction FileSaveAsDlg() semble limitée pour ce mon cas (j'espère me tromper) car on ne peut pas lui dire d'enregistrer la fenêtre de mise en page..

Ai je été un peu plus claire?

Yôko

Hors ligne

 

#4 Fri 11 March 2011 16:19

jean94
Participant assidu
Date d'inscription: 13 Aug 2009
Messages: 436

Re: MapBasic 10.5 : Créer une sous boite de dialogue pour enregister MEP

La fenêtre de mise en page peut être enregistrer en tant qu'image avec le save window ex :

Code:

Save Window 152851632 As "C:\....\Nom.BMP" Type "BMP" Width 8.5 Units "in" Height 11 Units "in" Resolution 96

.

Si non il peut être possible de l'enregistrer en tant que .wor.

Par contre j'ai déja fait un .mbx qui lorsque tu enregistrais une table dans le mbx (qui était une sorte de catalogue), le nom et le chemin était enregistrer respectivement dans 2 champs dans une table tiers qui servait de base de données.  Dans ma boite de dialogue j'avais une liste box qui énumérait tout les nom de table enregistrer dans la table tiers. Dans mon cas, lorsque tu choisissais une table dans le listbox et cliquait sur ouvrir, la table s'ouvrait grace au deuxième champ (champ qui contient le chemin de la table).  Il y avait aussi un mapwindow dans mon dialogue pour prévisualiser la table avant de l'ouvrir.

JF

Hors ligne

 

#5 Mon 14 March 2011 09:29

uppie
Juste Inscrit !
Date d'inscription: 24 Jan 2011
Messages: 8

Re: MapBasic 10.5 : Créer une sous boite de dialogue pour enregister MEP

Merci de ta réponse mais ce n'est pas ce que je recherche exactement, j'aimerai que la fonction FileSavesAs() qui fonctionne indépendemment puisse être inséer dans la boîte de dialogue, par exemple en cliquant sur un bouton prévu à cet effet.

Mais peut être que c'est impossible?

Merci en tout cas!

Hors ligne

 

#6 Mon 14 March 2011 14:01

jean94
Participant assidu
Date d'inscription: 13 Aug 2009
Messages: 436

Re: MapBasic 10.5 : Créer une sous boite de dialogue pour enregister MEP

Comme ceci

Code:

declare sub dialog
declare sub enregistre
dim output_filename, output_filedir as string

sub dialog
    Control StaticText position 10, 100 Title "Enregistrer la table sous :"
    control edittext ID 1 position 10, 85 width 140
    control button ID 2 position 155, 85 width 45 height 15 title "Enregistrer" calling enregistrer
end sub

sub enregistrer
    dim output_specs, output_filepath, Enrg_produits_nom as string

    output_specs = FileSaveAsDlg("C:\...","Untiteled","tab","Enregistrer la Nouvelle Table Sous: ")
    
    if PathToFileName$(output_specs) <> "" then
        output_filedir  = PathToDirectory$(output_specs)
        output_filename = PathToFileName$(output_specs)
        output_filepath = output_filedir + output_filename
        Alter Control 1 Value output_filepath
    else dialog preserve
    end if
end sub

JF

Dernière modification par jean94 (Mon 14 March 2011 14:03)

Hors ligne

 

#7 Mon 14 March 2011 15:06

uppie
Juste Inscrit !
Date d'inscription: 24 Jan 2011
Messages: 8

Re: MapBasic 10.5 : Créer une sous boite de dialogue pour enregister MEP

whaaa!

C'est bon ça fonctionne!!! Plus que quelques manip's et c'est parti!!

Merci JF pour ton aide précieuse!

Hors ligne

 

Pied de page des forums

Powered by FluxBB