Avatar billede bocker Nybegynder
17. april 2000 - 14:35 Der er 8 kommentarer og
2 løsninger

Liste over filer i bibliotek...?

Jeg har en almindelig editbox, hvor det aktuelle bibliotek står, nu vil jeg gerne have vist indholdet af biblioteket eventuelt i et ListView vindue. Egentlig vil jeg kune have vist *.jpg filerne + jeg vil gerne have et antal over hvor mange filer af nævnte type der eksistere i biblioteket...nogen forslag?
Avatar billede retep Nybegynder
17. april 2000 - 14:46 #1
Under fanebladet 'win3.1' findes en komponent, der hedder 'TFileListbox', som har de egenskaber du har brug for...

Den er simpel at bruge, så måske det er en mulighed? Sig til hvis du vis se noget kode til den...
Avatar billede speedy Nybegynder
17. april 2000 - 14:49 #2
Prøv dette :

procedure FindJpegs(Sti : String);
Var
  Fsr : TSearchRec;
  SogSti : String;
  ListItem: TListItem;
Begin
  If Sti[Length(Sti)] = '\' then else
    Sti := Sti + '\';
  If LastDelimiter('*',Sti) > 0 then else
    SogSti := Sti + '*.jpg';

  If FindFirst(SogSti, faAnyFile, Fsr) = 0 then
    If FSr.Attr <> faDirectory then
      Begin
        ListItem := ListView1.Items.Add;
        ListItem.Caption := Fsr.Name;
      end;

  While FindNext(Fsr) = 0 do
    If FSr.Attr <> faDirectory then
      Begin
        ListItem := ListView1.Items.Add;
        ListItem.Caption := Fsr.Name;
      end;
  FindClose(Fsr);
end;


/SpEeDy
Avatar billede speedy Nybegynder
17. april 2000 - 14:51 #3
Ups, lige en lille fejl, brug denne :

procedure FindJpegs(Sti : String);
Var
  Fsr : TSearchRec;
  SogSti : String;
  ListItem: TListItem;
Begin
  If Sti[Length(Sti)] = '\' then else
    Sti := Sti + '\';
  If LastDelimiter('g',Sti) > 0 then else
    SogSti := Sti + '*.jpg';

  If FindFirst(SogSti, faAnyFile, Fsr) = 0 then
    If FSr.Attr <> faDirectory then
      Begin
        ListItem := ListView1.Items.Add;
        ListItem.Caption := Fsr.Name;
      end;

  While FindNext(Fsr) = 0 do
    If FSr.Attr <> faDirectory then
      Begin
        ListItem := ListView1.Items.Add;
        ListItem.Caption := Fsr.Name;
      end;
  FindClose(Fsr);
end;



/SpEeDy

Avatar billede retep Nybegynder
17. april 2000 - 14:52 #4
Her har du koden til at få vist filerne i en TFilelistbox:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, FileCtrl;

type
  TForm1 = class(TForm)
    FileListBox1: TFileListBox;
    Edit1: TEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
  filelistbox1.ApplyFilePath(edit1.text);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  filelistbox1.Mask := '*.jpg';
end;

end.
Avatar billede retep Nybegynder
17. april 2000 - 14:54 #5
Antallet af filer får du ved:

Filelistbox1.Items.count;

Avatar billede retep Nybegynder
17. april 2000 - 14:57 #6
I stedet for at bruge en editboks til at vælge directoriet, kan det også anbefales at bruge en TDirectoryListBox. Denne findes også under fanebladet 'win 3.1' og skal bare bruges i stedet for edit1. Du kan også sætte det op sådan at du ikke behøver at bruge en knap til at se filerne, men så det bliver vist automatisk... Sig til hvis du vil have en komplet kode for dette...

Mvh
Retep
Avatar billede bocker Nybegynder
17. april 2000 - 18:38 #7
Ja har fået hjælp af canman på arbejdet, men ellers tak...
Avatar billede speedy Nybegynder
17. april 2000 - 19:18 #8
Kan du så ikke enten acceptere eller afvise ??

/SpEeDy
Avatar billede retep Nybegynder
19. april 2000 - 01:43 #9
Ja, accepter lige svarene, så andre ikke behøver spilde tid på at kigge på et spørgsmål der er løst...

Mvh
Retep
Avatar billede michaelras Nybegynder
26. april 2000 - 14:28 #10
man skal lige passe på med FSr.Attr <> faDirectory, for hvis mappen også har andre attributter duer den ikke (som fx skjult)
I stedet kan man bruge  and  til at sammenligne med, fx:
if FSr.Attr and faDirectory = 0 then

Michael
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester