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='
html'
then OpenDialog1.FilterIndex:=1
else if DefEndung='
php'
then 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