[erledigt] TFileNameEdit: merkwürdiges Verhalten
-
- Beiträge: 17
- Registriert: Sa 21. Sep 2019, 13:02
- OS, Lazarus, FPC: Windows 10, FPC: 3.2.2, L 3.0
- CPU-Target: 64Bit
- Wohnort: München
[erledigt] TFileNameEdit: merkwürdiges Verhalten
Hallo in die Runde,
wieder einmal mache ich meinem Name alle Ehre.
Das Problem ist eigentlich einfach, aber für mich rätselhaft: Ein einfaches Programm besteht nur aus einem Objekt TFileNameEdit, das ich aufrufe.
- Ein Klick auf den rechten Button des Objekts ergibt ein Bild wie in Schreenshot (101). Das Feld "Datei" zeigt den Namen links abgeschnitten, also 'sRg\PraxisRg.ini.'
- Klicke ich auf das Feld "Datei" springt die Ansicht um zu Schreenshot (102) und der Name erscheint vollständig, also 'D:\0_Common\pascal\Praxis\PraxisRg\PraxisRg.ini'
Ist das bei Euch auch so? Oder habt Ihr einen anderen Tipp als Brille putzen?
Viele Grüße und schon mal vielen Dank im Voraus
RudiRatlos
Windows 10, Lazarus 3.0
wieder einmal mache ich meinem Name alle Ehre.
Das Problem ist eigentlich einfach, aber für mich rätselhaft: Ein einfaches Programm besteht nur aus einem Objekt TFileNameEdit, das ich aufrufe.
- Ein Klick auf den rechten Button des Objekts ergibt ein Bild wie in Schreenshot (101). Das Feld "Datei" zeigt den Namen links abgeschnitten, also 'sRg\PraxisRg.ini.'
- Klicke ich auf das Feld "Datei" springt die Ansicht um zu Schreenshot (102) und der Name erscheint vollständig, also 'D:\0_Common\pascal\Praxis\PraxisRg\PraxisRg.ini'
Ist das bei Euch auch so? Oder habt Ihr einen anderen Tipp als Brille putzen?
Viele Grüße und schon mal vielen Dank im Voraus
RudiRatlos
Windows 10, Lazarus 3.0
- Dateianhänge
-
- 2024-03-11 Screenshot (101).jpg (206.74 KiB) 4658 mal betrachtet
-
- 2024-03-11 Screenshot (102).jpg (203.53 KiB) 4658 mal betrachtet
Zuletzt geändert von RudiRatlos am Mo 11. Mär 2024, 22:48, insgesamt 1-mal geändert.
Re: TFileNameEdit: merkwürdiges Verhalten
Liegt nicht an dir, sondern das ist eine Eigenheit von Windows, um die sich anscheinend niemand kümmert (Delphi hat's auch, aber auch Notepad++ und viele andere). Die einzige Möglichkeit, es zu verhindern, wäre die Option ofOldStyleDialog zu aktivieren (aber das willst du wahrscheinlich nicht - probier's aus...)
-
- Beiträge: 17
- Registriert: Sa 21. Sep 2019, 13:02
- OS, Lazarus, FPC: Windows 10, FPC: 3.2.2, L 3.0
- CPU-Target: 64Bit
- Wohnort: München
Re: TFileNameEdit: merkwürdiges Verhalten
vielen Dank für den Hinweis.
Ich habe zwar etwas gegrübelt, wie man das macht, habe aber dann gefunden, dass man ganz einfach
setzen kann.
Das Ergebnis findet Ihr weiter unten und erinnert sehr an uralte Delphi-Zeiten, damit alle was davon haben folgt ein Screenshot!
Vielen Dank,
ich finde es wirklich toll, mit welchem Wissen und welcher Hilfsbereitschaft viele hier aktiv sind !!!
Viele Grüße RudiRatlos
Ich habe zwar etwas gegrübelt, wie man das macht, habe aber dann gefunden, dass man ganz einfach
Code: Alles auswählen
FileNameEdit1.DialogOptions:=FileNameEdit1.DialogOptions + [ofOldStyleDialog];
Das Ergebnis findet Ihr weiter unten und erinnert sehr an uralte Delphi-Zeiten, damit alle was davon haben folgt ein Screenshot!
Vielen Dank,
ich finde es wirklich toll, mit welchem Wissen und welcher Hilfsbereitschaft viele hier aktiv sind !!!
Viele Grüße RudiRatlos
- Dateianhänge
-
- 2024-03-11 Screenshot (103).jpg (142.9 KiB) 4591 mal betrachtet
-
- Beiträge: 17
- Registriert: Sa 21. Sep 2019, 13:02
- OS, Lazarus, FPC: Windows 10, FPC: 3.2.2, L 3.0
- CPU-Target: 64Bit
- Wohnort: München
Re: [erledigt] TFileNameEdit: merkwürdiges Verhalten
Hallo allerseits,
zur Demonstration habe ich für Windows 10 ein kleines einfaches Programm FileDialog geschrieben, das die Dialogmöglichkeiten mit
Vielleicht hilft es dem einen oder anderen ....
Viele Grüße
RudiRatlos
zur Demonstration habe ich für Windows 10 ein kleines einfaches Programm FileDialog geschrieben, das die Dialogmöglichkeiten mit
- TFileNameEdit (fehlerhaft)
- TDirectoryEdit
- TSaveDialog (kann TFileNameEdit ersetzen)
- TOpenDialog (kann TFileNameEdit ersetzen)
Vielleicht hilft es dem einen oder anderen ....
Viele Grüße
RudiRatlos
- Dateianhänge
-
- 2024-03-13 Screenshot (101).jpg (30.87 KiB) 4529 mal betrachtet
-
- FileDialog.zip
- (142.29 KiB) 56-mal heruntergeladen
-
- Beiträge: 624
- Registriert: Do 27. Sep 2012, 00:07
- OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
- CPU-Target: x86_64-win64
- Wohnort: Hamburg
Re: [erledigt] TFileNameEdit: merkwürdiges Verhalten
Das hat mit TFileNameEdit nichts zu tun. TFileNameEdit verwendet verschiedene Dialoge die von TFileDialog abstammen, ähnliches verhalten gibt es auch dort, siehe TFileNameEdit.DialogKind oder irgendein FileDialog aus Dialogs-Unit. Ich habe auf die schnelle nach Fehlern gesucht, aber ich konnte nichts finden.
Ich denke bevor Windows-Dateidialog geöffnet wird muss Pfadangabe etwa so "WindowsDateiDialog.FileName:=:=ExtractFilePath(Filename);" entfernt werden.
Ich denke bevor Windows-Dateidialog geöffnet wird muss Pfadangabe etwa so "WindowsDateiDialog.FileName:=:=ExtractFilePath(Filename);" entfernt werden.
-
- Beiträge: 624
- Registriert: Do 27. Sep 2012, 00:07
- OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
- CPU-Target: x86_64-win64
- Wohnort: Hamburg
Re: [erledigt] TFileNameEdit: merkwürdiges Verhalten
Ich habe in lcl\include\FileDialog.inc folgende Änderung gemacht:
Jetzt wird Dateiname richtig angezeigt, aber Initialdir ist falsch, weil vor dem Ausführen des Dialogs InitialDir nochmal neu gesetzt wird mit "InitialDir:=ExtractFilePath(FileName);", wozu?
Ich denke InitialDir sollte nur bei SetFileName und SetInitialDir gesetzt werden.
Man muss die Unit mal komplett durchschauen und korrigieren.
Code: Alles auswählen
procedure TFileDialog.SetFileName(const value : string);
begin
//original: if FFilename=Value then exit;
//original: FFileName := Value; // make sure this is defined first before the CNSendMessage
FInitialDir:=ExtractFilePath(value);
FFileName := ExtractFileName(value);
end;
Ich denke InitialDir sollte nur bei SetFileName und SetInitialDir gesetzt werden.
Man muss die Unit mal komplett durchschauen und korrigieren.
-
- Beiträge: 17
- Registriert: Sa 21. Sep 2019, 13:02
- OS, Lazarus, FPC: Windows 10, FPC: 3.2.2, L 3.0
- CPU-Target: 64Bit
- Wohnort: München
Re: [erledigt] TFileNameEdit: merkwürdiges Verhalten
Vielen Dank Soner, das ist richtig ...
Aber so wie jetzt SetFilename in lcl\include\FileDialog.inc definiert ist, stellt man fest, dass InitialDir leer ist, deshalb habe ich es gesetzt. Ich habe keine Ahnung, wie man erreicht, dass FileDialog.inc geändert wird. An wen muss man sich wenden?
Bevor das nicht geändert wird, muss ich das in meinem Programm setzen.
Viele Grüße und nochmal vielen Dank für den Hinweis
RR
Aber so wie jetzt SetFilename in lcl\include\FileDialog.inc definiert ist, stellt man fest, dass InitialDir leer ist, deshalb habe ich es gesetzt. Ich habe keine Ahnung, wie man erreicht, dass FileDialog.inc geändert wird. An wen muss man sich wenden?
Bevor das nicht geändert wird, muss ich das in meinem Programm setzen.
Viele Grüße und nochmal vielen Dank für den Hinweis
RR
- af0815
- Lazarusforum e. V.
- Beiträge: 6218
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: [erledigt] TFileNameEdit: merkwürdiges Verhalten
DIe Frage ist hier, ob das leere InitialDir absicht ist. Damit kann der Dialog das letzte dem System bekannte Verzeichnis verwenden. Setzt du es explizit dann überschreibst du ein eventuell gewolltes Verhalten.RudiRatlos hat geschrieben: ↑Do 14. Mär 2024, 09:32Aber so wie jetzt SetFilename in lcl\include\FileDialog.inc definiert ist, stellt man fest, dass InitialDir leer ist, deshalb habe ich es gesetzt
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 17
- Registriert: Sa 21. Sep 2019, 13:02
- OS, Lazarus, FPC: Windows 10, FPC: 3.2.2, L 3.0
- CPU-Target: 64Bit
- Wohnort: München
Re: [erledigt] TFileNameEdit: merkwürdiges Verhalten
unter
https://gitlab.com/freepascal.org/lazar ... sues/40845
hat jemand gestern einen Call dazu aufgemacht, ob das Zufall ist, oder auf diesen thread zurückgeht, weiß ich nicht
https://gitlab.com/freepascal.org/lazar ... sues/40845
hat jemand gestern einen Call dazu aufgemacht, ob das Zufall ist, oder auf diesen thread zurückgeht, weiß ich nicht