Bonjour,
Suite à un conseil donné dans un autre message, j'ai voulu utiliser la fonction GetCurrentDir pour avoir le dossier courant d'une application pour indiquer le chemin "FileName de composant sqlite3Dataset.
Sous Windows, la réponse est correcte tant depuis l4EDI que depuis l'exécutable mais voilà une particularité que je ne m'explique pas : sous Linux Fedora 20 en 64 bits j'ai créé une petite application pour tester la réponse de cette fonction car l'application devant utiliser cette fonction me donnait un message d'erreur.
Mon application de test est simple ; voir le code ci-dessous :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| procedure TForm1.Button2Click(Sender: TObject);
begin
Close;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
// préparation de l'environnement
defaultFormatSettings.ShortDateFormat:='DD/MM/YYYY';
defaultFormatSettings.DateSeparator:='/';
defaultFormatSettings.DecimalSeparator:=',';
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text:=GetCurrentDir;
end; |
Cette petite application se trouve dans le dossier
Donc je devrais avoir à l'exécution
Edit1.Text = /home/j/laz-linux/chemin
et bien oui et non.
Depuis la commande exécuter de l'EDI j'ai la bonne réponse. Mais depuis l'exécutable, j'ai
Edit1.Text = /home/j/laz-linux
Pourquoi cette différence ? Et une autre fonction ou instruction peut-elle corriger ce problème pour avoir le même code dans les deux systèmes d'exploitation ?
Merci d'avance pour votre aide
A+
Partager