Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi FileOpendialog (https://www.delphipraxis.net/94905-fileopendialog.html)

Peter Berlin 27. Jun 2007 22:29


FileOpendialog
 
Hallo,
weiss jemand, wie man den Opendialog sofort im der Ansicht Details starten kann??
und dann natürlich auch gleich in Datums-sortierter Ansicht?

Ich hab schon überall gesucht, aber nichts gefunden

Muetze1 27. Jun 2007 22:52

Re: FileOpendialog
 
Hier der Code für die Detailansicht:
Delphi-Quellcode:
procedure TForm1.OpenDialog1FolderChange(Sender: TObject);
var
  H, H2: THandle;
begin
  H := FindWindowEx(GetParent(OpenDialog1.Handle), 0, PChar('SHELLDLL_DefView'), nil);
  H2 := FindWindowEx(H, 0, PChar('SysListView32'), nil);

  if (H <> 0) and (H2 <> 0) then
  begin
    SendMessage(H, WM_COMMAND, $702C, 0);
    Windows.SetFocus(H2);
  end;
end;

Peter Berlin 27. Jun 2007 23:00

Re: FileOpendialog
 
vielen Dank es funktioniert super.
gibt es noch andere werte als $702C und wo kann ich die Bedeutung finden

Muetze1 27. Jun 2007 23:25

Re: FileOpendialog
 
Folgende sind mir bekannt:

Windows XP:
$702A - Symbole
$702B - Liste
$702C (ODM_VIEW_DETAIL) - Details
$702D - Miniaturansicht
$702E - Kacheln

Windows 98:
$7029 - grosse Symbole
$702A - kleine Smbole
$702B - Liste
$702C (ODM_VIEW_DETAIL) - Details

Die Deklaration bzw. Zusammensetzung des Wertes aus entsprechenden Konstanten würde mich auch freuen.

/EDIT: Hier noch ein wenig was dazu: OpenDialog List View Mode

Luckie 27. Jun 2007 23:30

Re: FileOpendialog
 
Hm, warum nicht einfach im PSDK gucken: ms-help://MS.MSSDK.1033/MS.WinSDK.1033/shellcc/platform/commctls/listview/messages/lvm_setview.htm

Zitat:

LV_VIEW_DETAILS
LV_VIEW_ICON
LV_VIEW_LIST
LV_VIEW_SMALLICON
LV_VIEW_TILE

Muetze1 27. Jun 2007 23:34

Re: FileOpendialog
 
Zitat:

Zitat von Luckie
Hm, warum nicht einfach im PSDK gucken

Weil es nichts bringt: LV_VIEW_DETAILS ist mit 0x0001 definiert und bringt keine Wirkung. Die o.g. Codes werde nicht mit einer LVM_SETVIEW Message versendet sondern mit einer WM_COMMAND und von daher helfen die Konstanten noch nicht so richtig. Wahrscheinlich sind sie nur die unteren Bits, aber der Rest?

/EDIT: Es sind nicht die unteren Bits, die stimmen nicht überein.

Luckie 28. Jun 2007 00:04

Re: FileOpendialog
 
Zitat:

Zitat von Muetze1
Weil es nichts bringt: LV_VIEW_DETAILS ist mit 0x0001 definiert und bringt keine Wirkung. Die o.g. Codes werde nicht mit einer LVM_SETVIEW Message versendet sondern mit einer WM_COMMAND und von daher helfen die Konstanten noch nicht so richtig. Wahrscheinlich sind sie nur die unteren Bits, aber der Rest?

Das ist aber irgendwie seltsam.

achi 3.0 7. Nov 2008 08:51

Re: FileOpendialog
 
Hallo,

habe das gleiche problem gehabt und konnte es durch diesen beitrag lösen.

da mein program mit touchscreen genutzt wird müsste ich die buttons und die scrolleiste auf dem opendialog auch größer machen.

geht das ?



danke

himitsu 8. Nov 2008 17:07

Re: FileOpendialog
 
Die Größe der Scroll-Leiste läßt sich über die Systemeigenschaften ändern.
z.B.
> Systemseuerung > Anzeige (oder Desktop > Eigenschaften)
> Darstellung > [Erweitert]
> Element: Bildlaufleiste (oder auf die Scrollbar klicken)
> und dann nur noch die Größe einstellen


für die Buttons:
- entweder das Fenster zoomen
- ähnlich wie beim Anzeigemodus auswählen die Button suchen und neue Größe zuweisen
- oder die passende Resource ändern (dieses Fesnter liegt vordefiniert in einer der Windowseigenen DLLs und ließe sich demnach "leicht" verändern)

Für Zweiteres könnte ich auch die Dialog-Element-IDs bereitstellen.
Wo man dieses dann in TOpenDialog einbinden muß, weiß ich jetzt allerings nicht ... für die direkte WinAPI-Nutzung (bzw. 'ne Non-VCL-Variante) würde sich der Explorer-Hook (Window-Create-Ereignis) anbieten.

Hansa 24. Sep 2009 19:22

Re: FileOpendialog
 
Hi,

der Quelltext von Mütze geht soweit. Da er nicht kommentiert ist und ich dementsprechend wenig verstehe, was der da macht, folgende Frage : wenn ich den File-OpenDialog exekutiere :mrgreen: dann soll einfach nur eine Liste der Dateien erscheinen. Also quasi normal. Wird nun ein Unterverzeichnis aufgemacht, dann sollen die darin befindlichen Dateien allerdings in Miniaturansicht erscheinen. Wo setze ich denn da an ? Aus der WinAPI-Beschreibung werde ich nicht recht schlau. :shock:


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:50 Uhr.
Seite 1 von 2  1 2      

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