AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Delphi-PRAXiS - Lounge Betriebssysteme Windows Opendialog in Details Ansicht starten
Thema durchsuchen
Ansicht
Themen-Optionen

Windows Opendialog in Details Ansicht starten

Ein Thema von No Voices · begonnen am 23. Aug 2004 · letzter Beitrag vom 9. Sep 2004
 
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.042 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#12

Re: Windows Opendialog in Details Ansicht starten

  Alt 1. Sep 2004, 10:22
Zitat von No Voices:
@ Stevie

Super klasse, schön dank.

Endlich mal was richtig gutes. mich würde nur noch interesieren wie das so funktioniert. Schön währe auch wenn er sich den zuletzt geöfneten eintrag merkt. Wenn ich eine lange liste habe und das fenster sich nach jedem öffnen schliest muß ich immer wieder recht weit scrollen und suchen. Kann man das auch noch mit rein nehmen? ach so die Fenstergröße merkt er sich scheinbar auch nicht.

Selbst mit diesen "anregungen" finde ich es toll das Du dich da so schnell drum gekümmert hast. DANKE!
Wie's funktioniert? Verrat ich nich!!!
Ist eigentlich ganz einfach (wenn man weiß, wie geht und ne Hilfs-Lib dafür hat..):
Ist dir das Prinzip der Dll-Injektion ein Begriff? (Artikel im Entwickler) Grob gesagt, wird zwischen den Prozeduraufruf einer Dll-Funktion und der Dll eine zweite Dll gehangen, die dann angesprochen wird. Das heißt, wenn die Funktionen GetFileOpenName oder GetFileSaveName aufgerufen werden, startet die neue Dll diese Funktionen. Dort werden einige Modifikationen vorgenommen, bevor die eigentliche Funktion aufgerufen wird: als Parameter für diese beiden Funktionen wird ein Record mit Informationen für den Dialog übergeben. Dort kann man eine Hook-Funktion einbauen, die bei Botschaften aufgerufen wird. Dies ist auch eine Funktion aus der Dll (ähnlich der WndProc). Wenn dort eine bestimmte Botschaft ankommt, dann sucht man sich das Dateilisten-Objekt und sagt ihm, es soll in der Detailansicht angezeigt werden. Mit dem Dienst bewirke ich, dass die Dll die ganze Zeit geladen ist.
Den zuletzt gewählten Eintrag zu merken wäre nicht so einfach, weil das dann global geschehen müsste, dass heißt aber wiederum, dass in jedem Dialog - in welcher Anwendung auch immer - dieser Eintrag ausgewählt sein würde, was ja nicht unbedingt das Beste ist. Einige Anwedungen bieten dies sicherlich an, aber dann liegt es bei der Anwendung, das zu tun. Bei der Fenstergröße muss ich dir wiedersprechen, die merkt er sich (ich hab's mit Notepad und einer anderen Anwendung ausprobiert, allerdings immer innerhalb derselben Anwendung!!)
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:13 Uhr.
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