Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Opendialog Dateinamenerweiterung ändern (https://www.delphipraxis.net/53014-opendialog-dateinamenerweiterung-aendern.html)

padavan 8. Sep 2005 13:30


Opendialog Dateinamenerweiterung ändern
 
Hallo Delphianer,

möchte mit einem Button in meinem Player Playlisten öffnen und Lieddateien.
Für die Playlisten soll Multiselect := false; sein und für die Lieddateien Multiselect := true;

Ich bekomms aber nicht gebacken, es während der Laufzeit umzustellen.

Es gibt eine Möglichkeit mit OnTypeChange, aber das erwartet Parameter und ich hatte es mir mehr so vorgestellt:

Delphi-Quellcode:
if Opendialog1.Filterindex = 1 then Opendialog1.options[...]; // usw
Mir ist glaub ich klar, dass es mit dem OnTypeChange funktionieren muss, aber ich weiß nicht wie

Danke und Gruß Padavan

Thanatos81 8. Sep 2005 13:47

Re: Opendialog Dateinamenerweiterung ändern
 
Hi padavan!

Versuch mal das hier, bei mir funzt es:
Delphi-Quellcode:
procedure TForm1.OpenDialog1TypeChange(Sender: TObject);
begin
  with TOpenDialog(Sender) do
    begin
      if FilterIndex = 1
        then Options := Options + [ofAllowMultiSelect]
        else Options := Options - [ofAllowMultiSelect];
    end;
end;
//Edit
Du könntest auch das 'with TOpenDialog(Sender) do' weglassen, aber falls du noch nen zweiten TOpenDialog hast, der exakt das gleiche Verhalten haben soll, brauchst du so nur bei dessen OnTypeChange auf das OnTypeChange von OpenDialog1 verweisen

padavan 8. Sep 2005 21:36

Re: Opendialog Dateinamenerweiterung ändern
 
Hallo Thanatos81,

danke erstmal für die schnelle Hilfe.

Leider hat sich mein Problem nicht gelöst.
Dein Ansatz konnte ich nur wie folgt umsetzen:

Wenn ich den Opendialog aufrufe und das Dialogfenster erscheint und ich dann den Typ ändere wird ja auch eine Prozedur ausgelöst, aber die Eigenschaft Multiselect oder nicht Multiselect wird dann erst übernommen, wenn ich den Dialog schließe und erneut öffne.
Ich bräuchte es aber so, dass die Eigenschaft übernommen wird, während der Dialog geöffnet ist.

Vielen Dank schonmal

Thanatos81 8. Sep 2005 21:45

Re: Opendialog Dateinamenerweiterung ändern
 
Zitat:

Zitat von padavan
Wenn ich den Opendialog aufrufe und das Dialogfenster erscheint und ich dann den Typ ändere wird ja auch eine Prozedur ausgelöst, aber die Eigenschaft Multiselect oder nicht Multiselect wird dann erst übernommen, wenn ich den Dialog schließe und erneut öffne.
Ich bräuchte es aber so, dass die Eigenschaft übernommen wird, während der Dialog geöffnet ist.

Vielen Dank schonmal

Das hatte ich tatsächlich nicht getestet :oops: Hab auch gerade kein Delphi zur Hand (papas Laptop ;-) ), aber ein einfaches Refresh oder Update wird wahrscheinlich nur ein neuzeichnen, nicht ein neu einlesen der Optionen veranlassen, oder?

padavan 9. Sep 2005 00:43

Re: Opendialog Dateinamenerweiterung ändern
 
So ist es, das hab ich alles versucht.
Tja, neu aufbauen, das ist wahrscheinlich der Knackpunkt, aber wie.
Trotzdem danke!
Gruß
Padavan

padavan 9. Sep 2005 20:43

Re: Opendialog Dateinamenerweiterung ändern
 
wirklich niemand ne Idee?
:oops:

Karl-Heinz 9. Sep 2005 21:19

Re: Opendialog Dateinamenerweiterung ändern
 
Wenn es wirklich wichtig ist, erstelle Dir eine eigene TOpenDialog-Komponente, bei der Du das nötige Verhalten einbauen kannst.
Ich habe gerade keine zur Hand, aber es gibt genug davon bei Torry.
Oder - wenn Du den Delphi-Quellcode hast - eine neue Komponente auf Basis des vorhandenen Delphi-Codes machen.

Tja, und dann mußt Du dich durch den entsprechenden Quellcode fieseln und die entsprechenden Teile abändern. Im Delphi-Dialog kommt das Flag "ofAllowMultiSelect" in DefineProperties und GetFileNames vor. Hier mußt Du also eingreifen.

Viel Erfolg,

Karl-Heinz Krönig

padavan 12. Sep 2005 07:41

Re: Opendialog Dateinamenerweiterung ändern
 
Dann werd ich das so machen müssen,
hätte aber nicht gedacht, dass das ein spezielles Problem ist, sondern eine "ganz normale" Sache.

Muss mir halt mal anschauen, ob ich mich in dem OpenDialog Quelltext zurecht finde.
Falls ich erfolgreich bin, werde ich´s hier veröffentlichen.

Gruß
Padavan


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:12 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-2025 by Thomas Breitkreuz