Datei Öffnen Dialog mit Codierungen Combobox unter Vista
-
21-08-2019 - |
Frage
Ich verwende derzeit die TOpenTextFileDialog, da es die Codierungen Option, aber unter Vista erscheint es mit dem älteren offenen Dialog-Stil. Ich würde den neuen Stil offenen Dialog mag, aber mit einer Codierung Combobox, die ich mit benutzerdefinierten Zeichenkette füllen. Grundsätzlich mag ich den genauen offenen Dialog, Editor unter Vista zeigt. Natürlich auch Speichern-Dialog Ich brauche auch die entsprechenden.
Ich habe einige der Forschung getan und es scheint, dass die OFN_ENABLETEMPLATE Flagge des Vista gemeinsamen Dialog führt zurück zu den alten Stil fallen. Leider, das ist auch das Flag, das das TOpenTextFileDialog ändern Sie das Fenster, um die Kodierungen Combobox hinzufügen kann (wenn ich die Dinge richtig zu verstehen.)
Hat jemand einen Vorschlag, wie zu bekommen, was ich unter Vista will, aber noch haben sie unter XP arbeiten? Ich gehe davon aus, dass Windows 7 wird das gleiche Problem hat. Ich verwende D2009. Vielen Dank für alle Vorschläge oder helfen!
Lösung
Mit Vista eine neue Art und Weise mit Dateidialogen Umgang eingeführt, um weitere Informationen, Google für die IFileDialog
Schnittstelle oder einen Blick auf diese Blog-Post . Wie Sie selbst sagen, mit der OFN_ENABLETEMPLATE
Flagge wird den Vista gemeinsamen Dialog zu dem alten Stil zurückzugreifen.
Mit Delphi 2007 und 2009 können Sie die TFileOpenDialog
und TFileSaveDialog
in der Vista Dialoge Komponenten Kategorie verwenden können. Um Ihre Anwendung kompatibel mit Pre-Vista Windows-Versionen machen sollten Sie die TOpenTextFileDialog
für diejenigen halten verwenden, und versuchen Sie es zu Laufzeit, ob Sie auf Vista und können die neuen Dialoge verwenden:
if Win32MajorVersion >= 6 then begin
// use TFileOpenDialog
// ...
end else begin
// use TOpenTextFileDialog
// ...
end;
Jetzt müssen Sie nur die Anpassung an den Vista-Dialog hinzuzufügen. Der Blog-Eintrag zeigt, wie dies durch hinzufügen eines Handlers für OnExecute
des Dialogs (weil zu der Zeit, als diese die IFileDialog
Schnittstelle aufgerufen wird wurde bereits eingerichtet) zu tun, die Abfrage des Dialog
Mitglieds des Dateidialogs für die IFileDialogCustomize
Schnittstelle, und dies unter Verwendung hinzufügen die zusätzlichen Kontrollen.