Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Problem mit TOpenDialog.InitialDir (https://www.delphipraxis.net/177838-problem-mit-topendialog-initialdir.html)

Phillie08 30. Nov 2013 13:45

Delphi-Version: XE5

Problem mit TOpenDialog.InitialDir
 
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

bcvs 30. Nov 2013 14:04

AW: Problem mit TOpenDialog.InitialDir
 
Such mal hier im Forum nach Hier im Forum suchenInitialDir.

Der erste gefundene Thread ist dieser hier, im zweiten steht die Lösung.

jaenicke 30. Nov 2013 15:42

AW: Problem mit TOpenDialog.InitialDir
 
Der Unterschied ist, dass Lazarus den alten OpenDialog benutzt. Wenn du das in Delphi einstellst, funktioniert es auch.

Mich als Benutzer würde das allerdings wahnsinnig machen. Die aktuelle Lösung von Windows finde ich schon gut gemacht.

Phillie08 3. Dez 2013 11:37

AW: Problem mit TOpenDialog.InitialDir
 
Zunächst mal vielen Dank für die Antworten. Die waren schneller da als ich sie übers Wochenende verarbeiten konnte.
Zitat:

Zitat von bcvs (Beitrag 1237983)
Such mal hier im Forum nach Hier im Forum suchenInitialDir.

Der erste gefundene Thread ist dieser hier, im zweiten steht die Lösung.

Seufz, das hätte ich wohl auch selbst finden können. Aber immerhin hat es geholfen.

Zitat:

Zitat von jaenicke (Beitrag 1237988)
Der Unterschied ist, dass Lazarus den alten OpenDialog benutzt. Wenn du das in Delphi einstellst, funktioniert es auch.

Mich als Benutzer würde das allerdings wahnsinnig machen. Die aktuelle Lösung von Windows finde ich schon gut gemacht.

Und, Sebastian, ich weiß nicht genau, was dich wahnsinnig machen würde, eventuell die schwachen Realisierungen einiger Programme, die bei jedem Aufruf einer Datei-Auswahl auf der obersten Ebene starten und sich nichts merken. Das allerdings nervt heftig. Ebenso nervt aber auch, dass der Startknoten einfach so der letzte verwendete ist und nicht der, der vom Autor vorgesehen ist (und, nebenbei, rund 2 Mausklicks sparen würde, weil man nicht erst zurück muss.)
Aber das übelste ist für mich, dass da eine Eigenschaft im Angebot ist, die einfach ignoriert wird. Und nichts dazu findet sich in der Delphi-Hilfe!

Wie auch immer, eure Hinweise machen mir Mut weiter zu machen. Das nächste Problem habe ich schon vor Augen.
Gruß,
Andreas


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:04 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz