Einzelnen Beitrag anzeigen

Phillie08

Registriert seit: 19. Jan 2011
13 Beiträge
 
#1

Problem mit TOpenDialog.InitialDir

  Alt 30. Nov 2013, 13:45
Delphi-Version: XE5
Hallo allerseits,
ich bin dabei, ein Programm von Lazarus nach Delphi zu übernehmen. Die Formulare musste ich nachbauen, kein Problem hier, die Quelltexte wurden zunächst 1:1 übernommen und wo nötig angepasst.
Nun mein Problem: Ich verwende eine Ini-Datei mit nur zwei Einträgen, nämlich (zum Testen)
Code:
[Pfad]
HTML='P:\Lazarus\Dateinamentest\Dateien'

[Suffix]
Endung='php'
Die Ideee ist nun, die beiden Werte einem OpenDialog zu übergeben, der erste soll den Startpfad (InitialDir) liefern, der zweite die voreingestellte Dateiendung.
Beide Werte werden korrekt ins Programm eingelesen, wovon ich mich sowohl über den Debugger, als auch über ein Label zur Kontroll-Ausgabe überzeugt habe.

Jetzt kommt das merkwürdige: Der Suffix-Parameter wird vom OpenDialog korrekt angenommen. Aber der Pfad-Parameter wird ignoriert, stattdessen wird gnadenlos der letzte verwendete Ordner als Startordner verwendet.
Wohlgemerkt: Unter free Pascal hat das sehr wohl wie gewünscht funktioniert.
Es folgen Ausschnitte aus dem Code in der Hoffnung, dass irgend jemand etwas sieht, das ich aus Blindheit oder Blödheit (für beides komme ich jederzeit in Frage) eben nicht sehe.

Delphi-Quellcode:
var
  Ini: tIniFile;
  IniDateiName: string;
  HTMLPfad: string; //Suchpfad für die Quelldateien
. . .
with Ini do begin
    HTMLPfad := ReadString ('Pfad', 'HTML', '');
    DefEndung := ReadString ('Suffix', 'Endung', '');
...
  Label1.Caption := 'Start-Dir: ' + HTMLPfad; // Kontroll-Ausgabe
  OpenDialog1.InitialDir := HTMLPfad; // funktioniert nicht!
  if DefEndung='htmlthen OpenDialog1.FilterIndex:=1
    else if DefEndung='phpthen OpenDialog1.FilterIndex:=2; // funktioniert
Es versteht sich von selbst, dass ich gefühlte 20mal überprüft habe, ob der Pfad aus der Ini-Datei physisch existiert.

In der Hoffnung auf Hilfe,
Andreas
  Mit Zitat antworten Zitat