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
Antwort Antwort
Seite 2 von 3     12 3      
No Voices

Registriert seit: 6. Sep 2003
Ort: Peine
110 Beiträge
 
Delphi 7 Enterprise
 
#11

Re: Windows Opendialog in Details Ansicht starten

  Alt 31. Aug 2004, 09:12
@ 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!
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

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

Re: Windows Opendialog in Details Ansicht starten

  Alt 1. Sep 2004, 09: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
No Voices

Registriert seit: 6. Sep 2003
Ort: Peine
110 Beiträge
 
Delphi 7 Enterprise
 
#13

Re: Windows Opendialog in Details Ansicht starten

  Alt 2. Sep 2004, 08:26
@ Stevie

Danke für die erläuterung. mir ist die Tage aufgefallen das das mit dem merken der einträge im Opendialog etwas anders funktionieren muß. Ich habe eine HDD wo ich alle meine CD's als mp3 drauf habe. Das sind jetzt schon sehr viele. Jedes Album hat einen eigenen Ordner im Hauptverzeichnis. Ich öffne einen Ordner und lade die darin enthaltenen mp3's und der dialog schließt wieder. Wenn ich jetzt noch einen andere titel laden willgehe ich einfach mit dem button vom OpenDialog ein "Verzeichnis" zurück. Dort wo all die ordner stehen. Warum makirt oder zeigt er nicht den Ordner an in dem ich gerade noch war? Er springt immer nach ganz oben zum anfang der liste. Jedesmal wenn ich einen odner verlasse geht er immer nach oben. Sicherlich fähl mir das bei meinem Mediaplayer mehr auf als bei anderen Progs, aleine schon durch die masse an ordnern und mp3's. Wenn es da keine andere möglichkeit gibt kann ich mich zur not auch noch damit anfreunden das manuel im Player mit einzupflegen.

Gruß NoVoices
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

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

Re: Windows Opendialog in Details Ansicht starten

  Alt 2. Sep 2004, 08:34
Die Verzeichnis-Liste ist ja sowas, wie eine ListBox oder ListView. Wenn das Fenster erstellt wird, weiß er zwar den Pfad, aber nicht den ItemIndex. Um den beim Schließen markierten Eintrag zu ermitteln, müsste man wieder ziemlich in den Dialog eingreifen und den markierten Eintrag merken. Beim erneuten Öffnen muss der vorher selektierte Eintrag wiederhergestellt werden. Mal sehen, ob sowas geht...
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

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

Registriert seit: 6. Sep 2003
Ort: Peine
110 Beiträge
 
Delphi 7 Enterprise
 
#15

Re: Windows Opendialog in Details Ansicht starten

  Alt 3. Sep 2004, 08:25
Hallo noch mal,

Mir ist da gestern noch was aufgefallen. Wenn der Dialog aufgeht, ist er Unten rechts und recht klein das Fenster. Also speichert er bei mir nicht die größe und position.

Angenommen ich habe eine liste mit 200 Ordnern. Ich offne eine ordner um mir den inhalt anzusehen. Wenn ich jetzt einen schrit zurück gehe um die 200 Ordner WEITER durch zu gehen, fängt er vorne an. er soll dan aber den ordner wo ich gerade drin war markieren.

Ich würde mich auch gerne selber mir der materie beschäftigen, aber im moment habe ich leider keine zeit mich noch mit anderen Themen zu beschäftigen. Zumal das auch ein bereich ist der mir sehr umfangreich erscheint.

Um das jetzt so nachzufolzihen habe ich nicht das wissen von Windows und Delphi. Leider.

Danke für deine Hilfe.
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

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

Re: Windows Opendialog in Details Ansicht starten

  Alt 3. Sep 2004, 08:36
Zitat von No Voices:
Mir ist da gestern noch was aufgefallen. Wenn der Dialog aufgeht, ist er Unten rechts und recht klein das Fenster. Also speichert er bei mir nicht die größe und position.
Das scheint dann aber das Problem deines Programmes zu sein. Probier doch mal den Dialog in anderen Anwendungen (Notepad oder so)
Zitat von No Voices:
Angenommen ich habe eine liste mit 200 Ordnern. Ich offne eine ordner um mir den inhalt anzusehen. Wenn ich jetzt einen schrit zurück gehe um die 200 Ordner WEITER durch zu gehen, fängt er vorne an. er soll dan aber den ordner wo ich gerade drin war markieren.
Uff, da muss man ja (komplett) das Verhalten des Windows-Explorers verändern!!! Wenn du einen Ordner höher gehst, dann steht er nunmal auf dem ersten und nicht auf dem, aus dem er kommt. Aber dazu kenn ich mich auch noch nicht genug aus. Du könntest allerdings einen eigenen FileDialog bauen, der sowas kann... Aber dann ist das Verhalten eben wieder nur in deiner Delphi-Anwendung und nicht woanders. Mal gucken, ob ich was darüber finde...

P.S. Allein das mit dem letzten markierten Eintrag haut mir die Exceptions nur so um die Ohren...
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

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

Registriert seit: 6. Sep 2003
Ort: Peine
110 Beiträge
 
Delphi 7 Enterprise
 
#17

Re: Windows Opendialog in Details Ansicht starten

  Alt 6. Sep 2004, 09:02
Naja was soll ich sagen... das es nicht so einfach ist war mir klar als ich den Dienst von Dir installiert habe. Mittlerweile denke ich, das ich zumindest vür den MediaPlayer ein eigenen Dialog schreiben sollte. Oder auch die Option den eigenen oder den von windows zu benutzen. Solche langen listen hat man ja oft nur mit irgendwelchen medien z.B. mp3.

Was das unten rechts betrifft, jedesmal wenn ich ein prog starte und zu erstenmal den Dialog aufrufe ist er unten rechts mit einer recht kleinen Fenstergröße.

und eine frage habe ich noch. Kann es sein das ich mit einigen Programmen probleme habe mit diesem Dienst? Ich habe nach dem ich das teil installiert habe noch ander software drauf geschmissen. Da funktionirt der Opendialog nicht richtig. Das Fenster geht auf, ich wähle ein datei aus, per doppelklick, er schließt das Fenster und das wars. nichts passiert. Ist nur ne vermutung kann auch am prog liegen, habe es vorher nicht getestet.

Warum hat Windows keine INI oder so, wo man sowas einstellen kann. Sowas ist doch nicht so schwer oder?

Gruß NoVoices
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

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

Re: Windows Opendialog in Details Ansicht starten

  Alt 6. Sep 2004, 09:07
Zitat von No Voices:
und eine frage habe ich noch. Kann es sein das ich mit einigen Programmen probleme habe mit diesem Dienst? Ich habe nach dem ich das teil installiert habe noch ander software drauf geschmissen. Da funktionirt der Opendialog nicht richtig. Das Fenster geht auf, ich wähle ein datei aus, per doppelklick, er schließt das Fenster und das wars. nichts passiert. Ist nur ne vermutung kann auch am prog liegen, habe es vorher nicht getestet.
Stoppe einfach mal den Dienst und probier es aus, dann siehst du ja, ob's klappt oder nicht.
Tja, wenn Windows so komfortabel wär, wie wir uns das wünschten!
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

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

Registriert seit: 6. Sep 2003
Ort: Peine
110 Beiträge
 
Delphi 7 Enterprise
 
#19

Re: Windows Opendialog in Details Ansicht starten

  Alt 9. Sep 2004, 09:13
Guten Tag,

Du hast recht, es liegt am Dienst. Aber woran genau kann ich nicht sagen. Liegt es daran das ich die software nach dem diesnt installiert habe?

Ich habe das nochmal mit dem speichern der Position und Größe beobachtet. Wenn ich ein Prog starte und zum ersten mal den Dialog öffne ist er untern recht unr recht klein. Wenn das Prog noch läut und ich zum zweiten mal den dialog öffne hat er die position vom ersten öffnen behalten. sonst nicht. Schließe ich das Prog und starte es wieder neu habe ich den dialog wieder unten rechts.

Vieleicht hilft Dir diese info.

Ich würde gerne den dienst weiterhin nutzen er muß aber ohne probleme laufen mit allen progs. Es währe schade den Dienst immer an und abschalten zu müssen jenachdem mit welcher software man arbeitet.

MfG NoVoices
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

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

Re: Windows Opendialog in Details Ansicht starten

  Alt 9. Sep 2004, 09:26
Zitat:
Du hast recht, es liegt am Dienst. Aber woran genau kann ich nicht sagen. Liegt es daran das ich die software nach dem diesnt installiert habe?
Kann überhaupt nicht sein, denn um einen Dialog zu öffnen, wird bloß eine API-Funktion aufgerufen. Und diese wird ja bloß zusätzlich durch meine Funktion geschliffen und dann an die richtige Funktion übergeben.

Zitat:
Ich habe das nochmal mit dem speichern der Position und Größe beobachtet. Wenn ich ein Prog starte und zum ersten mal den Dialog öffne ist er untern recht unr recht klein. Wenn das Prog noch läut und ich zum zweiten mal den dialog öffne hat er die position vom ersten öffnen behalten. sonst nicht. Schließe ich das Prog und starte es wieder neu habe ich den dialog wieder unten rechts.
Jo, jetzt hab ich's bei mir auch bemerkt, bis auf den Unterschied, dass bei mir der Dialog oben links erscheint...
Ich werd mal schauen. Irgendwo scheint die Positionierung verloren zu gehen.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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:04 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