Autor Beitrag
PPaB
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33



BeitragVerfasst: Sa 20.06.09 13:24 
Also ich habe ein komisches Problem und komme einfach nicht darauf, wieso dies nicht funktioniert.

Ich habe eine Listbox bei der über den Doppelklick auf einen Eintrag sich dieser als PPT-Datei öffnet:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
procedure TLieder.LBLiederDblClick(Sender: TObject);
var
  i: Integer;
  Pfad : String;
begin
  for i := 0 to LBLieder.Items.Count -1 do
  begin
    if LBLieder.Selected[i] then
      Pfad := 'PP-Lieder/' + LBLieder.Items.Strings[i] + '.ppt';
  end;

ShellExecute(Handle, 'open', PChar(Pfad), nil, nil, sw_Show);
end;


In einer ComboBox habe ich alle zur Auswahl stehenden Einträge und man kann diese durch einen button in die Listbox eintragen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
procedure TLieder.Button1Click(Sender: TObject);
begin
LBLieder.Items.Add(CBLieder.Text);
end;


Dies funktioniert auch ohne Probleme und die PPT-Datei öffnet sich,
ABER:

Wenn ich über eine Textdatei die Liste eintragen lasse, dann öffnet sich die PPT-Datei NICHT:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TLieder.Liederliste1Click(Sender: TObject);
begin
if OpenDialog1.Execute then begin
try
OpenDialog1.Title := 'Liederliste laden';
LBLieder.Items.LoadFromFile(OpenDialog1.FileName);
except
Messagebox(Self.Handle, 'Leider konnte die Datei nicht geöffnet werden.', 'Fehler', MB_OK);
end;
end;
end;


Das Programm stürtzt dabei auch nicht ab oder gibt einen Fehler aus, es öffnet die Datei einfach nur nicht, so als wäre die Datei in dem Ordner nicht vorhanden. (Dies ist aber nicht so!!)

Hoffe jemand findet den Fehler, wenn ihr dafür noch nen anderen teil des Codes benötigt, einfach schreiben und ich füge ihn hinzu.

MfG
PPaB


Zuletzt bearbeitet von PPaB am Sa 20.06.09 14:15, insgesamt 1-mal bearbeitet
JungerIslaender
ontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 427
Erhaltene Danke: 5

Win XP
Delphi 7; Delphi 2005
BeitragVerfasst: Sa 20.06.09 14:13 
Hi,

Erstmal solltest du statt zitat feldern, Delphi quelltext tags nehmen, entweder in "bereiche" auswählen oder manuell: <span class="inlineSyntax"><span class="codecomment">{PROTECTTAG2f158936660678acd08bbd2f58a01a70}</span></span>. Macht Das ganze übersichtlicher.^^

Meine Frage wäre dann:Ist deine Textdatei mit den pfaden im selben Verzeichnis wie deine ppt dateien.

Und werden die pfade dann in die liste geladen und wenn du sie dann öffnen willst passiert nichts oder werden sie gar nicht erst in die liste geladen?
PPaB Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33



BeitragVerfasst: Sa 20.06.09 14:19 
Sry falsches "Zitieren" benutzt, habs geändert

Die Textdatei mit den Pfaden ist nicht im Selben Verzeichnis mit den PPTs, die PPTs sind in einem Unterordner des Ordners mit der Textdatei. Die Textdatei zum einlesen der speziellen Einträge 8wo der Fehler auftritt) kann frei auf dem PC ausgewählt werden.

Aber ich setzte ja den Ordnernamen vor den Namen in der Textdatei, so dass die PPT geöffnet werden kann.

Die Pfade werden in die Liste geladen und man kann auch per Doppelklick die Procdure aufrufen, aber die Präsentation öffnet sich einfach nicht (also es passiert gar nichts und der code wird einfach weiter augeführt).
JungerIslaender
ontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 427
Erhaltene Danke: 5

Win XP
Delphi 7; Delphi 2005
BeitragVerfasst: Sa 20.06.09 15:02 
Schieb mal zum Testen die .txt Datei in den selben ordner wo die ppt dateien sind. Und teste das ganze dann noch einmal.

Wenn das nicht geht nimm mal als pfad nicht: 'PP-Lieder/' sondern den kompletten Pfad c:\programme\...\PP-Lieder
PPaB Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33



BeitragVerfasst: Sa 20.06.09 16:26 
Jetzt klappt es, habe es in den Ordner verschoben und dann funktionierts.

Hättest du vielleicht noch eine Idee, warum es in einem anderen Ordner nicht funktioniert?

Danke schonmal
JungerIslaender
ontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 427
Erhaltene Danke: 5

Win XP
Delphi 7; Delphi 2005
BeitragVerfasst: Sa 20.06.09 16:55 
Ja, habe ich. Ich denke es liegt daran, dass sobald man den opendialog benutzt der lokale pfad verändert wird. D.h. wenn deine exe hier ist: c:\programme\hier\deine.exe
dann beziehen sich alle relativen pfade (wie z.B. ./irgendetwas.ppt) auf c:\hier\deine.exe.

Wenn du dann den opendialog benutzt um z.B. die textdatei in c:\programme\deine.txt zu öffnen ist das der lokale pfad, also .\blubb.ppt bezieht sich auf c:\programme\blubb.ppt und nicht c:\programme\hier\blubb.ppt.

Daher auch mein zweiter vorschlag, dass du den kompletten Pfad nimmst: C:\programme\deinordner\deine.exe. Weil der ist dann absolut. Einziger Nachteil ist dass das programm nur auf rechnern läuft wo die verzeichnisse genau so sind (also nur auf deinem^^)

Das kannst du allerdings umgehen indem du rausfindest wo deine exe liegt und das dann als absoluten pfad nimmst.(denke ich) Da weiß ich allerdings nicht wie es geht.

Schön das ich dir helfen konnte.
PPaB Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33



BeitragVerfasst: Sa 20.06.09 17:24 
Gut, dann muss ich nurnoch herausfinden, wie man den Pfad herrausfindet.

Danke!!