Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Filterdefinition (https://www.delphipraxis.net/47798-filterdefinition.html)

Pitch-Bull 16. Jun 2005 12:38


Filterdefinition
 
Ich habe vor mehrere Dateitypen in einer Make zu definieren dazu habe ich folgenden Code:
Delphi-Quellcode:
if CheckBox1.Checked then Dateistring:='*.mp3';
if CheckBox2.Checked then Dateistring:=Dateistring+'|*.wav';
If CheckBox3.Checked then Dateistring:=Dateistring+'|*.midi';
GetFilesInDirectory(Pathname, Dateistring, Listbox1.Items, Subdirs, Add)
Wie sieht die Maske mit mp3 und zb. wav aus?

Pitch-Bull 16. Jun 2005 13:11

Re: Filterdefinition
 
Weiß keiner wie ich das gemeint habe oder liegt es daran, dass ich den thread ins falsche forum (ausvershen) gepostet habe?

BrunoT 16. Jun 2005 13:16

Re: Filterdefinition
 
So?

Delphi-Quellcode:
OpenDialog1.Filter := 'Pascal files|*.PAS;*.DPK;*.DPR';
OpenDialog1.Filter := 'Music files|*.wav;*.mdi;*.mp3';

mfg

BrunoT

Pitch-Bull 16. Jun 2005 13:19

Re: Filterdefinition
 
Delphi-Quellcode:
OpenDialog1.Filter := *.PAS;*.DPK;*.DPR';
OpenDialog1.Filter := *.wav;*.mdi;*.mp3';
so wäre das top. Aber ich benutze keinen dialog dafür. mit dem Semikolon abzutrennen habe ich schon versucht, das klappt aber nicht.

hier die procedure in der ich die masken übergeben will:
Delphi-Quellcode:
procedure GetFilesInDirectory(Directory: String; const Mask: String;
                            List: TStrings;
                            WithSubDirs, ClearList: Boolean);


implementation
procedure GetFilesInDirectory(Directory: String; const Mask: String;
                            List: TStrings;
                            WithSubDirs, ClearList: Boolean);

procedure ScanDir(const Directory: String);
var SR: TSearchRec;
begin
if FindFirst(Directory + Mask, faAnyFile - faDirectory, SR) = 0 then
try
 repeat     List.Add(ExtractFileName(Directory + SR.Name))
  until FindNext(SR) <> 0;
  finally   FindClose(SR);
  end;
   if WithSubDirs then
  begin
  if FindFirst(Directory + '*.*', faAnyFile, SR) = 0 then
  try
   repeat
    if ((SR.attr and faDirectory) = faDirectory) and
       (SR.Name <> '.') and (SR.Name <> '..') then
     ScanDir(Directory + SR.Name + '\');
     until FindNext(SR) <> 0;
     finally     FindClose(SR);
     end;
     end;
     end;
     begin List.BeginUpdate;
     try
      if ClearList then
       List.Clear;
        if Directory = ''
         then Exit;
      if Directory[Length(Directory)] <> '\'
      then     Directory := Directory + '\';
   ScanDir(Directory);
     finally
     List.EndUpdate;
     end;
  end;
end.

BrunoT 16. Jun 2005 13:27

Re: Filterdefinition
 
Es geht do so:

Delphi-Quellcode:
Filter:='*.wav;*.mdi;*.mp3';

Repeat
  sString:=copy(filter,1,5);
  delete(filter,1,6);
  finden(sString);
until length(Filter)=0;
schematisch natürlich :wink:

mfg

BrunoT

wenn man mal schnell was schreibt...


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