Autor Beitrag
Cosmic
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 63



BeitragVerfasst: Do 09.01.03 09:16 
Hi,
um einige Berechnugen zu tätigen, übergebe ich meinem Programm ein festes Verzeichnis (Gruß an Klabautermann!). Soooo wenn ich nun aber Installshield nehme und ein anderes Installationsverzeichnis wähle, klappt nix mehr. Also gibt es bestimmt einen Befehl, der Verzeichnisse relativ zur Programmdatei (wo die exe liegt und somit das Programm installiert ist) festlegt.

Hier der jetzige feste Pfad. Die EXE liegt in Order "4", das wichtige Verzeichnis ist "planfall1".

ausblenden Quelltext
1:
DatabaseName := 'C:\Programme\Borland\Delphi7\Projects\Projects2\4\planfall1';					


Der neue Code müste vielleicht so aussehen:

ausblenden Quelltext
1:
DatabaseName := '...\4\planfall1';					


Nur das kann natürlich nicht klappen, weil Delphi so nach dem Verzeichnis C:\4\planfall1 sucht, was es ja nicht gibt.

Aber auch andere kombinationen lassen mich im Stich...
ob mit oder one "\" nix funktioniert .....
Ich vermute dass das so gar nicht klappen kann.

Ciao Cosmic

-----------------------------------------
Letz Fet´s heute beginnt Dein Leben
Keldorn
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 2266
Erhaltene Danke: 4

Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
BeitragVerfasst: Do 09.01.03 09:47 
Hallo

ausblenden Quelltext
1:
  ProgDir := extractFilepath(Application.exename);					

oder du arbeitest mit paramstr(0)

damit erhälst du das verzeichnis, wo deine Exe drin ist und kannst dann die Unterverzeichnisse erreichen

Mfg Frank

_________________
Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
Cosmic Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 63



BeitragVerfasst: Do 09.01.03 11:04 
Titel: klingt gut
Hi,
klingt gut, aber so ganz durchblicke ich das noch nicht.

Sieht das so aus ?
Also z.B.

ausblenden Quelltext
1:
2:
ProgDir := extractFilepath(Application.exename);
databasename := ('ProgDir\planfall1')


Das klappt aber leider nicht.
Wenn ich die " ' " weg lasse meldet Delphi, das ein illegal Chart "\" im Code ist. Und mit " ' " findet es das Verzeichnis nicht ?
Auch wenn ich versuche die Verzeichnisse außerhalb des CopyDir Befehls zu verändern und als Variable übergebe, scheitert es am hinzufügen des Verzeichnisses.....

Das Pfad der exe wird aber einwandfrei ausgelesen.

Gruß Cosmic

-----------------------------------------
Letz Fet´s heute beginnt Dein Leben
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Do 09.01.03 11:11 
Hallo,

du kannst stings einfach mit dem Plus (+) Operator aneinander hängen. Also z.B. so:

ausblenden Quelltext
1:
2:
3:
ProgDir := extractFilepath(Application.exename);
databasename := (ProgDir + 'planfall1');
INI := tIniFile.Create(ProgDir + 'config.ini');

Einfach den Variablennamen in den String schreiben, wie du es versucht hast, funktioniert natürlich nicht.

Gruß
Klabautermann
Keldorn
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 2266
Erhaltene Danke: 4

Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
BeitragVerfasst: Do 09.01.03 11:12 
progdir ist doch eine variable! :roll:
ausblenden Quelltext
1:
2:
3:
4:
 
databasename := progdir+'\planfall'
oder gleich
databasename := extractfilepath(...)+'\planfall'

gugg aber mal in die OH zu extractfilepath, ob evtl der \ schon mit dabei ist.

edit : da war wohl einer schneller :D

Mfg Frank

_________________
Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
LCS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1305
Erhaltene Danke: 1

WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
BeitragVerfasst: Do 09.01.03 11:15 
Keldorn hat folgendes geschrieben:

gugg aber mal in die OH zu extractfilepath, ob evtl der \ schon mit dabei ist.

Ist er.

Gruss Lothar

_________________
Der BH ist für die Brust, der Plan ist für'n Ar...
Cosmic Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 63



BeitragVerfasst: Do 09.01.03 11:34 
Titel: Klasse
Super!
Danke an alle !
AUf die einfachsten Möglichkeiten kommt man ja meinstens eh nicht so schnell :P
Danke ciao Cosmic

Tja und als ob es nicht da Probleme gäbe.....
So kann ich ja leider auch alle möglichen Verzeichnisse laden! Wie unpassend ! Desshalb habe ich mir folgendes ausgedacht:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
Dir := 'C:\';
if SelectDirectory(Dir, [sdAllowCreate, sdPerformCreate,     
sdPrompt],SELDIRHELP) then
  Begin
    If FileExists((Dir+'valid')) then
    Begin
      x := (Dir);
      if CopyDir(x,extractfilepath(Application.exename)) = True then
      begin
        MessageBox(0,'Projekt geladen.','Hinweis',16);
      end;
    end
      else
    begin
        MessageBox(0,'Ungültiges Verzeichnis','Problem',16);
    End;
  End;


Also es muß die Datei Valid im Ordner sein damit er kopiert wird. An sich fand ich meine Idee toll :oops:
Nur leider findet er irgendwie die Datei nicht...... Dumm gelaufen ;)
Ich glaube, das ich die Datei nicht mit folgendem definieren darf.
ausblenden Quelltext
1:
2:
 
If FileExists((Dir+'valid')) then

Auch 100 andere Kombos wollen nicht so recht. Was habe ich mal wieder übersehen?!

-----------------------------------------
Letz Fet´s heute beginnt Dein Leben