Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Lazarus (IDE) (https://www.delphipraxis.net/81-lazarus-ide/)
-   -   Filter in OpenDialog setzen (https://www.delphipraxis.net/197421-filter-opendialog-setzen.html)

Reiter0303 5. Aug 2018 15:10

Filter in OpenDialog setzen
 
so wie du (Kodezwerg)
hab ich es auch
jetzt muss ich mir nur noch was suchen wo ich die endung filtern kann
danke an euch 2
super

kann ich das mit den endungen in var deklarieren?
kann ich nicht den filter einfach setzen mit

OpenDialog1.Filter := ('Datei | Datei.'txt');

so geht das leider nicht da ist alles ausgegraut

danke nochmal an euch

DieDolly 5. Aug 2018 15:23

AW: mit opendialog file auswählen und zum ftp senden?
 
Die Klammern weglassen.

So wäre es besser
Delphi-Quellcode:
OpenDialog1.Filter := 'Alle Dateitypen|*.*|Ausführbare Dateien|*.exe; *.com;|Textdateien|*.txt;|ZIP-Dateien|*.zip';

Reiter0303 5. Aug 2018 15:49

AW: mit opendialog file auswählen und zum ftp senden?
 
Liste der Anhänge anzeigen (Anzahl: 1)
vielen dank...
geht leider nicht auch wenn ich die klammern weg lasse

hab da stehen

OpenDialog1.Filter := 'Datei | *.ipk';

das sind ja keine zip,oder ausführbare dateien, ich probiere das aber nochmal mit dem zip
habs jetzt nochmal probiert auch die zip dateien bleiben ausgegraut

OpenDialog1.Filter := 'Datei | *.ipk;|ZIP-Dateien|*.zip';

Code:
procedure TForm1.Button20Click(Sender: TObject);
var
Datei: String;
begin
OpenDialog1.Filter := 'Datei | *.ipk;|ZIP-Dateien|*.zip';
if OpenDialog1.Execute then
begin
      Datei := OpenDialog1.FileName;
      idFTP1.Put(OpenDialog1.FileName,'/tmp/' + ExtractFileName(OpenDialog1.FileName), True);
   end
else
   ShowMessage('nix ausgewählt...');

end;
so sieht jetzt der code aus

Reiter0303 5. Aug 2018 16:42

AW: Filter in OpenDialog setzen
 
so zur info...
so funktioniert es

OpenDialog1.Filter :='Datei(*.ipk)|*.ipk';

DieDolly 5. Aug 2018 16:43

AW: Filter in OpenDialog setzen
 
Versteif dich nicht zu sehr auf die Klammern.
Das hier funktioniert genau so gut. Die Klammer in diesem Falle ist vollkommen unwichtig.
Delphi-Quellcode:
OpenDialog1.Filter :='Datei|*.ipk';
Zitat:

geht leider nicht auch wenn ich die klammern weg lasse
Zitat:

OpenDialog1.Filter := ('Datei | Datei.'txt');
Das kann ja auch nicht funktionieren!

Ganz wichtig ist auch mal die Fehlermeldungen zu lesen die der Compiler ausspuckt. Funktioniert nicht ist soweit ich weiß keine Fehlermeldung.

Reiter0303 5. Aug 2018 16:49

AW: Filter in OpenDialog setzen
 
da kam keine fehlermeldung im compiler
hat er durch compiliert

DieDolly 5. Aug 2018 16:59

AW: Filter in OpenDialog setzen
 
Delphi-Quellcode:
OpenDialog1.Filter := ('Datei | Datei.'txt');


Das da kann er eigentlich nicht durchcompilieren.
Der Code ist so falsch, dass selbst der BBCode-Converter des Forums nicht damit zurecht kommt.

Delphi.Narium 5. Aug 2018 17:02

AW: Filter in OpenDialog setzen
 
Auch das
Delphi-Quellcode:
OpenDialog1.Filter := 'Datei|*.ipk|ZIP-Dateien|*.zip';
sollte funktionieren.

Aufbau des Filters:

Eine Beschreibung
dann ein senkrechter Strich
dann ein Dateimuster

Also
Delphi-Quellcode:
Datei|*.ext


Soll der Filter mehrere Dateiendungen haben dann

Eine Beschreibung
dann ein senkrechter Strich
dann ein Dateimuster
dann ein Semikolon
dann ein Dateimuster
dann ein Semikolon
dann ein Dateimuster
...

Also
Delphi-Quellcode:
Programme|*.cmd;*.exe;*.bat;*.com


Will man mehrere Filter haben, so baue man diese einzeln nach obigem Muster auf und trenne sie jeweils durch einen senkrechten Strich.

Also
Delphi-Quellcode:
Programme|*.cmd;*.exe;*.bat;*.com|Datei|*.ipk|ZIP-Dateien|*.zip


Oder auch
Delphi-Quellcode:
OpenDialog1.Filter := 'Programme (*.cmd;*.exe;*.bat;*.com)|*.cmd;*.exe;*.bat;*.com|Datei (*.ipk)|*.ipk|ZIP-Dateien (*.zip)|*.zip';

wenn der Anwender im Filter sehen soll, welche Dateiendungen ausgewählt werden. Die Klammen kann man auch weglassen oder durch Eckige ... ersetzen, so wie es einem gerade gefällt.

Es ginge aber auch
Delphi-Quellcode:
OpenDialog1.Filter := '*.cmd;*.exe;*.bat;*.com|*.cmd;*.exe;*.bat;*.com|*.ipk|*.ipk|*.zip|*.zip';
mit annähernd maximaler Verwirrung beim Lesen im Quelltext.

Der Compiler erkennt keine Syntaxfehler in den Filtern.

KodeZwerg 5. Aug 2018 17:08

AW: mit opendialog file auswählen und zum ftp senden?
 
Zitat:

Zitat von Reiter0303 (Beitrag 1409858)
hab da stehen

OpenDialog1.Filter := 'Datei | *.ipk';
OpenDialog1.Filter := 'Datei | *.ipk;|ZIP-Dateien|*.zip';

Ich glaube da sind ungewollt gesetzte Leerzeichen ein Problem.

Reiter0303 5. Aug 2018 17:13

AW: Filter in OpenDialog setzen
 
hallo kodezwerg
ja genau das war wohl das problem
mit den leer zeichen
jetzt gehts ja...

EWeiss 5. Aug 2018 17:23

AW: Filter in OpenDialog setzen
 
Ich würde mir ne const anlegen..

bsp.

Delphi-Quellcode:
const
  VIDEOEXT = 'VIDEOEXT|*.avi;*.qt;*.mov;*.mpg;*.mpeg;*.m1v;*.asf;*.wma;*.wmv;*.flv;*.mp4;*.m4v;*.mkv;' +
  '*.dat;*.rm;*.3gp;*.ogm;*.ogv;|VIDEO_TS.IFO|VIDEO_TS.IFO;|Bluray File|index.bdmv;|Bluray Playlist|*.mpls';
Und dann VIDEOEXT als Filter übergeben.

Delphi-Quellcode:
OpenDialog1.Filter := VIDEOEXT; // oder was auch immer


gruss

Delphi.Narium 5. Aug 2018 17:25

AW: Filter in OpenDialog setzen
 
Das Semikolon dürfte falsch sein.

Delphi-Quellcode:
OpenDialog1.Filter := 'Datei|*.ipk|ZIP-Dateien|*.zip';

statt
Delphi-Quellcode:
OpenDialog1.Filter := 'Datei | *.ipk;|ZIP-Dateien|*.zip';


Delphi-Quellcode:
| *.ipk|

bedeutet, die Dateimaske ist
Delphi-Quellcode:
Leerzeichen gefolgt von beliebig vielen Zeichen.ipk
Das "führende" Leerzeichen ist also Teil der Dateinamenmaske.

Man lese dazu: https://msdn.microsoft.com/de-de/lib...v=vs.110).aspx

oder schlecht übersetzt, aber in (pseudo)deutsch ;-) https://msdn.microsoft.com/de-de/lib...v=vs.110).aspx

Auf englisch: https://msdn.microsoft.com/en-us/lib...v=vs.110).aspx

KodeZwerg 5. Aug 2018 17:48

AW: Filter in OpenDialog setzen
 
Resultat mit Delphi 2009 =
Delphi-Quellcode:
OpenDialog1.Filter := 'ZIP-#1| *.zip;|ZIP-#2|*.zip;';

Delphi-Quellcode:
OpenDialog1.Filter := 'ZIP-#1| *.zip|ZIP-#2|*.zip';

In beiden Fällen wird mir "*.zip" angezeigt, egal ob #1/#2 ausgewählt ist, Leerzeichen sowie Semikolon scheinen an dieser Stelle kein Problem darzustellen.

edit:
Ich meinte in Dateiliste werden mir alle *.zip Dateien angezeigt.

Reiter0303 5. Aug 2018 17:50

AW: Filter in OpenDialog setzen
 
nochmal vielen dank an alle für die tolle hilfe

KodeZwerg 5. Aug 2018 18:02

AW: Filter in OpenDialog setzen
 
Jederzeit wieder. Viel Erfolg mit Deinem Projekt!:thumb:

hoika 6. Aug 2018 06:57

AW: Filter in OpenDialog setzen
 
Hallo,
ich baue mir den Filter immer im Objekt-Inspektor zusammen.
Und dann kopiere ich den in den Quellcode, falls er dynamisch sein soll.

zeras 21. Jul 2019 13:42

AW: Filter in OpenDialog setzen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe 10.3.1 und wollte den Filter im Opendialog setzen. Leider geht das bei mir nicht grafisch, siehe Bild. Im Objektinspektor kann ich das setzen. Ich sehe nirgendwo einen Bestätigungs Button.
Wie sieht das bei euch aus?
Das Projekt ist eine "Geräteübergreifende Anwendung".
Vielleicht liegt das auch an meiner Anzeige zusammen. Eingestellt ist 125% unter Windows 7.

DieDolly 21. Jul 2019 13:45

AW: Filter in OpenDialog setzen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Das liegt an der DPI das sieht man.

So sieht es unter Windows 10 und 100% DPI aus. Mit 125% DPI ist alles sehr widerlich verschwommen und das Panel auf dem die ListBox oder was auch immer das ist liegt versucht auch zu verschwinden. Aber nicht so schlimm wie bei dir.

Uwe Raabe 21. Jul 2019 14:18

AW: Filter in OpenDialog setzen
 
Das kann man durch eine geschickte Einstellung bei der Programmverknüpfung etwas verbessern.

In den Eigenschaften unter Kompatibilität den Button Hohe DPI-Einstellungen ändern klicken. Dort den Haken bei Hohe DPI-Skalierung überschreiben setzen und in der Auswahl-Combo System (erweitert) einstellen.

zeras 21. Jul 2019 14:35

AW: Filter in OpenDialog setzen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Uwe Raabe (Beitrag 1437210)
Das kann man durch eine geschickte Einstellung bei der Programmverknüpfung etwas verbessern.

In den Eigenschaften unter Kompatibilität den Button Hohe DPI-Einstellungen ändern klicken. Dort den Haken bei Hohe DPI-Skalierung überschreiben setzen und in der Auswahl-Combo System (erweitert) einstellen.

Danke für die Info.
Bei Kompatibilität habe ich nur das gefunden, was im Bild zu sehen ist. Da hat sich aber nichts geändert. Wo finde ich die Auswahl-Combo-> System-> erweitert? Habe noch Windows 7.

Uwe Raabe 21. Jul 2019 15:21

AW: Filter in OpenDialog setzen
 
Zitat:

Zitat von zeras (Beitrag 1437212)
Habe noch Windows 7.

Dann hast du leider verloren - damit geht das nicht. Damit geht aber auch High-DPI eigentlich nicht (richtig).


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:23 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