Se placer dans un dossier?

Résolu
darky93 Messages postés 42 Date d'inscription mercredi 8 juin 2005 Statut Membre Dernière intervention 13 octobre 2005 - Modifié le 4 mars 2021 à 12:36
exyacc Messages postés 163 Date d'inscription dimanche 20 octobre 2002 Statut Membre Dernière intervention 31 juillet 2008 - 5 juil. 2005 à 17:29
Bonjour!
Dans mon projet j'ai placé un OpenDailog associé à un bouton ouvrir et un SaveDaliog associé à un bouton enregistrer, j'ai fait "ce qu'il faut pour enregistrer et ouvrir", la pas de problème!
Par contre je voudrais savoir s'il est possible quand on clique sur ouvrir qu'il se place toujours dans un dossier précis (idem pour enregistrer)?

23 réponses

exyacc Messages postés 163 Date d'inscription dimanche 20 octobre 2002 Statut Membre Dernière intervention 31 juillet 2008
5 juil. 2005 à 12:17
tu utilises getcurrentdir pour connaitre le repertoire ou est ton
aplic et apres ben...je sais pas ou tu veux que ca ouvre...mais si tu
veux par exemple que ca ouvre le repertoire "sauvegarde" qui se trouve
ds le repertoire ou est ton applic, tu fais
opendialog.initialdir:=getcurrentdir+'\sauvegarde';
exyacc
3
exyacc Messages postés 163 Date d'inscription dimanche 20 octobre 2002 Statut Membre Dernière intervention 31 juillet 2008
5 juil. 2005 à 17:09
juste apres ton initdir affiche avec
showmessage(getcurrentdir+'\Resultats'), d'apres moi c'est ton chemin
qui doit pas etre valide donc il met le repertoire d'avant;

a ta place, j'utiliserai pas getcurrentdir a chaque fois.... a
l'ouverture du programme je ferai rep_courant:=getcurrentdir; et apres
j'utiliserai toujour rep_courant a la place de getcurrentdir, comme ca
je serais sur que mon repertoire d'origine ne change pas ... ;)

exyacc
3
exyacc Messages postés 163 Date d'inscription dimanche 20 octobre 2002 Statut Membre Dernière intervention 31 juillet 2008
5 juil. 2005 à 11:30
opendialog.initialdir:='c:\mon_rep';


exyacc
0
darky93 Messages postés 42 Date d'inscription mercredi 8 juin 2005 Statut Membre Dernière intervention 13 octobre 2005
5 juil. 2005 à 12:08
C'est cool!
Mais j'ai une base de données donc j'ai créé un Installshield.
Comment je dois faire pour que ça modifie le chemin automatiquement si la personne décide de ne pas installer dans le dossier par défault?
Ou alors si il déplace le dossier après installation?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
5 juil. 2005 à 12:11
chdir('c:\dossier\');

===========
Validez les réponses si ok...

ViewVite XP : HTML
0
darky93 Messages postés 42 Date d'inscription mercredi 8 juin 2005 Statut Membre Dernière intervention 13 octobre 2005
5 juil. 2005 à 13:37
Avec opendialog.initialdir:=getcurrentdir+'\sauvegarde'; ça fonctionne nickel!

Merci!!!!
0
darky93 Messages postés 42 Date d'inscription mercredi 8 juin 2005 Statut Membre Dernière intervention 13 octobre 2005
5 juil. 2005 à 13:55
Pourquoi ça ne fonctionne pas avec savedialog?
0
exyacc Messages postés 163 Date d'inscription dimanche 20 octobre 2002 Statut Membre Dernière intervention 31 juillet 2008
5 juil. 2005 à 14:08
ben ca marche pareil avec savedialog ou opendialog ... pourquoi il fait quoi ?
exyacc
0
darky93 Messages postés 42 Date d'inscription mercredi 8 juin 2005 Statut Membre Dernière intervention 13 octobre 2005
5 juil. 2005 à 14:30
En faite j'ai deux savediaog sur deux form différentes avec des noms différents. Le premiers savedialog (saveDonnees) "partage" le même dossier (donnees) que opendialog (OpenDonnees) et le segond savedialog (SaveResultats) utilise un dossier différents (resultats).
Quand je veux enregistrer mes résultats il se met toujours dans le dossier donnees? Si on revient sur la form pour modifier les données (la form ou l'on enregistre les résultats ce ferme dans ce cas) et les enregistrer, il se place dans le dossier que l'on choisit à choisit en dernier (soit du OpenDonnees soit du SaveResultats).
J'ai bien fait attention à bien mettre les bons noms de dossiers aux bons endroits, mais ça ne change rien!
0
exyacc Messages postés 163 Date d'inscription dimanche 20 octobre 2002 Statut Membre Dernière intervention 31 juillet 2008
5 juil. 2005 à 14:37
suis la valeur saveresultats.initialdir avec des showmessage.... entre
le moment ou tu affectes initial dir et le moment ou tu fais le
execute, il doit y avoir une merde qqpart....

exyacc
0
darky93 Messages postés 42 Date d'inscription mercredi 8 juin 2005 Statut Membre Dernière intervention 13 octobre 2005
5 juil. 2005 à 14:54
Dés que l'on fait ouvrir il bascule les deux savedialogs vers le dossier donnees. Alors que je n'ai même pas encore appelé la form de résultats!
0
exyacc Messages postés 163 Date d'inscription dimanche 20 octobre 2002 Statut Membre Dernière intervention 31 juillet 2008
5 juil. 2005 à 14:57
je peux voir ton code ?
exyacc
0
darky93 Messages postés 42 Date d'inscription mercredi 8 juin 2005 Statut Membre Dernière intervention 13 octobre 2005
5 juil. 2005 à 15:04
Quand on fait enregistrer les résultats et q'uon se replace dans le dossier resultats il bascule aussi le dossier savedonnes, mais pas celui de opendonnes!

Petit détail j'enregistre mais données et mes résultats en format Excel en passant par l'Ole.
0
exyacc Messages postés 163 Date d'inscription dimanche 20 octobre 2002 Statut Membre Dernière intervention 31 juillet 2008
5 juil. 2005 à 15:11
moi ca marche...faudrait voir le code..

exyacc
0
darky93 Messages postés 42 Date d'inscription mercredi 8 juin 2005 Statut Membre Dernière intervention 13 octobre 2005
5 juil. 2005 à 15:20
Voir le code ça va être difficile c'est un projet industriel et c'est "la version difinitive" du programme.
Je vais essayer d'en faire un mini qui fait les même actions
0
exyacc Messages postés 163 Date d'inscription dimanche 20 octobre 2002 Statut Membre Dernière intervention 31 juillet 2008
5 juil. 2005 à 15:22
vi, juste avec un opendialog et 2 savedialogs...
exyacc
0
darky93 Messages postés 42 Date d'inscription mercredi 8 juin 2005 Statut Membre Dernière intervention 13 octobre 2005
5 juil. 2005 à 16:06
Voila voila, désolé je met un peut de temps ça fait pas longtemps que je programme!

procedure TForm1.Excel_EnregistreClick(Sender: TObject);
var i:Integer;
begin
if SaveDonnees.Execute then
begin
SaveDonnees.InitialDir:=getcurrentdir+'\Donnees';
OleApplication := CreateOleObject('Excel.Application');
OleWorkBook:=OleApplication.Workbooks.Add;
OleApplication.visible:=False;
OleApplication.Cells[1,1]:=n;
for i:=1 to n do
begin
OleApplication.Cells[2,i]:=Vecteur[i-1];
end;
OleApplication.ActiveWorkBook.SaveAs(SaveDonnees.FileName);
OleApplication.Quit;
OleApplication:=Unassigned;
end;
end;

procedure TForm1.Excel_OuvreClick(Sender: TObject);
var i,j:Integer;
begin
if OpenDonnees.Execute then
begin
OpenDonnees.InitialDir:=getcurrentdir+'\Donnees';
OleApplication := CreateOleObject('Excel.Application');
OleApplication.visible:=False;
OleWorkBook:=OleApplication.Workbooks.open(OpenDonnees.FileName);
n:=OleApplication.Cells[1,1];
Verification.Checked:=OleApplication.Cells[1,2];
SetLength(Vecteur,n);
for i:=1 to n do
begin
Vecteur[i-1]:=OleApplication.Cells[2,i];
end;
Affichage;
OleApplication.Quit;
OleApplication:=Unassigned;
end;
end;

procedure TForm1.ResultatsClick(Sender: TObject);
begin
Form2.Showmodal;
end;

procedure TForm2.EnregistrerClick(Sender: TObject);
var i:Integer;
begin
if SaveResultats.Execute then
begin
SaveResultats.InitialDir:=getcurrentdir+'\Donnees';
OleApplication := CreateOleObject('Excel.Application');
OleWorkBook:=OleApplication.Workbooks.Add;
OleApplication.visible:=False;
for i:=1 to Form1.n do
begin
OleApplication.Cells[1,i]:=Form1.VPlus10[i-1];
end;
OleApplication.ActiveWorkBook.SaveAs(SaveResultats.FileName);
OleApplication.Quit;
OleApplication:=Unassigned;
end;
end;
0
darky93 Messages postés 42 Date d'inscription mercredi 8 juin 2005 Statut Membre Dernière intervention 13 octobre 2005
5 juil. 2005 à 16:08
Je suis pas rapide et je fais des boulettes avec le copier coller!
Pour la Form2 c'est:
procedure TForm2.EnregistrerClick(Sender: TObject);
var i:Integer;
begin
if SaveResultats.Execute then
begin
SaveResultats.InitialDir:=getcurrentdir+'\Resultats';
OleApplication := CreateOleObject('Excel.Application');
OleWorkBook:=OleApplication.Workbooks.Add;
OleApplication.visible:=False;
for i:=1 to Form1.n do
begin
OleApplication.Cells[1,i]:=Form1.VPlus10[i-1];
end;
OleApplication.ActiveWorkBook.SaveAs(SaveResultats.FileName);
OleApplication.Quit;
OleApplication:=Unassigned;
end;
end;
0
exyacc Messages postés 163 Date d'inscription dimanche 20 octobre 2002 Statut Membre Dernière intervention 31 juillet 2008
5 juil. 2005 à 16:16
deja, mets le initialdir avant de faire le excecute...

exyacc
0
exyacc Messages postés 163 Date d'inscription dimanche 20 octobre 2002 Statut Membre Dernière intervention 31 juillet 2008
5 juil. 2005 à 16:20
tu as mis 3 fois : SaveResultats.InitialDir:=getcurrentdir+'\Donnees';



y'en aurait pas un qui devrait etre: SaveResultats.InitialDir:=getcurrentdir+'\Resultats'; ?

exyacc
0
Rejoignez-nous