IFileDialog mit Delphi 7
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich möchte meine Delphiprogramme gerne mit den neuen (Win7/Vista) Datei- und Ordnerdialogen "aufwerten". Zu diesem Thema habe ich auch bei stackoverflow eine entsprechende Unit gefunden (siehe Anhang). Das Problem ist (nur), dass zum Kompilieren aktualisierte Standard-Units notwendig sind: Zitat:
.sundance. P.S. Wie stellt man es an, dass (längere) Code-Segmente standardmäßig "eingeklappt" erscheinen? edit: Das mit dem Zusammenklappen war hier im Forum gemeint; CODE entfernt und als Anlage hinzugefügt... |
AW: IFileDialog mit Delphi 7
Zitat:
Und wenn doch, dann muß man mal schauen ob sich das bei der gnutzten Fremdkomponente einstellen läßt. (ich glaub CnPack kann sowas ... zumindestens das einklappen) Ab spätestens 2010 kennt Delphi
Delphi-Quellcode:
(ich hoff' das ist jetzt richtog geschrieben), welches Delphi standardmäßig eingeklappt darstellt.
{$REGION 'xyz'}...{$ENDREGION}
|
AW: IFileDialog mit Delphi 7
Zitat:
|
AW: IFileDialog mit Delphi 7
Upps, also das geht nicht.
Könnte man ja mal einen Feature-Request für anlegen (falls es den nicht schon gibt) Wobei das Attachment natürlich schöner ist. (einen gekürzten Header kann man natürlich dennoch zeigen ... ohne "private"-Abschnitte und anderes unwichtiges Zeugs) Zitat:
Die Variable aFileDialogEvent abschaffen und den ParentDialog als Parameter übergeben.
Delphi-Quellcode:
FileDialogEvents := TFileDialogEvent.Create(Self);
IFileDialog.Advise will ein Interface haben, wieso gibst du ihm dann das Objekt? Wenn du dir das TOpenOptions-Set bitkompatibel zu den FOS_*-Konstanten ausgelegt hast, dann kannst du dir das ellenlange IF-Konstrukt ersparen, indem du Options direkt in aOptionsSet castest. |
AW: IFileDialog mit Delphi 7
@himitsu:
Wie gesagt, der Quelltext ist nicht von mir, sondern bei stackoverflow gefunden. Ich habe mir die Details/Probleme der Unit auch noch nicht näher angesehen; mein vorrangiges Ziel war es, sie erstmal "zum Laufen" zu bringen mit den aktualisierten Standardunits. Offen gestanden habe ich mich bisher auch noch nicht mit Interfaces beschäftigt, von daher kann ich leider auch nicht beurteilen, in wie weit die gefundene Implementierung korrekt ist. Ich habe unglücklicherweise sonst keinen Implementierungsvorschlag für die neuen Datei- und (besonders) Ordner-Dialoge von Vista/Win7 gefunden, auf denen man aufbauen könnte. Für Dateidialoge (öffnen und speichern) gibt's zwar funktionierende Lösungen, aber zur Auswahl von Ordnern (im Win7-Stil) bin ich bisher noch nicht fündig geworden... (z.B. CommonOpenFileDialog.IsFolderPicker := true) .sundance. |
AW: IFileDialog mit Delphi 7
Ja, ich weiss, der Thread ist uralt, aber da ich gerade auf diese Unit gestossen bin:
Folgendes ist ein Bugfix fuer auskommentierten Code (der wegen des Bugs auskommentiert wurde):
Delphi-Quellcode:
Quelle: http://stackoverflow.com/a/14309767/49925
{Set FileTypes (either from Filter or FilterArray)}
if Length(Filter) > 0 then begin aStringList := TStringList.Create; try ParseDelimited(aStringList, Filter, '|'); i := 0; while i <= aStringList.Count - 1 do begin SetLength(aFileTypesArray, Length(aFileTypesArray) + 1); aFileTypesArray[Length(aFileTypesArray) - 1].pszName := StringToOleStr(aStringList[i]); aFileTypesArray[Length(aFileTypesArray) - 1].pszSpec := StringToOleStr(aStringList[i + 1]); Inc(i, 2); end; FileDialog.SetFileTypes(Length(aFileTypesArray), aFileTypesArray); finally for i := 0 to Length(aFileTypesArray) - 1 do begin SysFreeString(aFileTypesArray[i].pszName); SysFreeString(aFileTypesArray[i].pszSpec); end; aStringList.Free; end; (Noch ungetestet.) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:08 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