Avatar billede stefmeister Nybegynder
06. juni 2004 - 18:44 Der er 13 kommentarer og
2 løsninger

Find et billeds placering og noget med FileListBox

Hej

Jeg starter mit program med at loade et billede ind i mit program, hvordan kan jeg finde ud af hvor henne mit billede ligger? (Er nemlig ved at lave et program ligesom det der høre med Windows til at se billeder med).

Så når jeg har fundet den placering (f.eks. 'c:\mine billeder') så sætter jeg FileListBox1.Directory := billedets placering; Så skal jeg have alle de navne med .jpg, .bmp, .gif osv. INGEN andre, for ellers så går mit program amok hvis man prøver at loade f.eks. en .exe fil ind som et billede :D

Hvordan kan jeg det? Altså få alle navnene på alle de andre billeder i samme mappe?
Avatar billede doc404 Novice
06. juni 2004 - 19:15 #1
sæt Mask til *.jpg:*.bmp;*.gif
Avatar billede stefmeister Nybegynder
06. juni 2004 - 20:28 #2
takker... det er ihvertfald 15 point.
Kan du også hjælpe med at finde placeringen af det loadede billede?
Avatar billede stone Forsker
06. juni 2004 - 21:37 #3
koden indlæser alle billeder fra c:\mine billeder ind i en listbox med den fulde sti
procedure GetAllFiles(mask: string);
var
  search: TSearchRec;
  directory: string;
  begin
  directory := ExtractFilePath(mask);

  // find all files
  if FindFirst(mask, $23, search) = 0 then
  begin
    repeat
      // add the files to the listbox
      Form1.ListBox1.Items.Add(directory + search.Name);
        until FindNext(search) <> 0;
  end;

  // Subdirectories/ Unterverzeichnisse
  if FindFirst(directory + '*.*', faDirectory, search) = 0 then
  begin
    repeat
      if ((search.Attr and faDirectory) = faDirectory) and (search.Name[1] <> '.') then
        GetAllFiles(directory + search.Name + '\' + ExtractFileName(mask));
    until FindNext(search) <> 0;
    FindClose(search);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  directory: string;
  mask: string;
  begin
Listbox1.Items.Clear;

  directory := 'C:\mine billeder\';
  mask := '*.jpg';

  Screen.Cursor := crHourGlass;
  try
    GetAllFiles(directory + mask);
  finally
    Screen.Cursor := crDefault;

end;
  end;
Avatar billede stefmeister Nybegynder
06. juni 2004 - 21:42 #4
I din kode skal man selv definere hvilken sti den skal bruge. Det jeg skal bruge det er at den selv finder ud af hvilken sti det åbnede billede ligger i, så den kan åbne resten af billederne også.
Avatar billede doc404 Novice
06. juni 2004 - 22:03 #5
Du har altså et filnavn? Så kan du bruge denne

ExtractFilePath(filnavn)

Den returnerer 'folder' delen
Avatar billede stefmeister Nybegynder
06. juni 2004 - 22:48 #6
så skriver den bare ingenting.

Showmessage(ExtractFilePath(FileListBox1.Items[0]));
Avatar billede stefmeister Nybegynder
06. juni 2004 - 22:49 #7
altså hvis jeg skriver:

Showmessage(ExtractFilePath(FileListBox1.Items[0]));


så skriver den ingenting.
Avatar billede stone Forsker
06. juni 2004 - 23:35 #8
Showmessage(ExtractFilePath(FileListBox1.FileName));
Avatar billede stefmeister Nybegynder
07. juni 2004 - 00:53 #9
den skriver stadig ingenting.
Avatar billede doc404 Novice
07. juni 2004 - 09:05 #10
Vi taler vist forbi hinanden...

Den viser ingen ting fordi hverken FileName eller Items[n] indeholder sti - kun filnavnet.

Hvad mener du med placeringen af det loadede billede? Hvis du loader det du vel også stien oder wass?
Avatar billede stefmeister Nybegynder
07. juni 2004 - 16:10 #11
nej for jeg åbner ikke billedet ved at trykke f.eks. Åbn, men trækker billedet over i mit program, og så kan jeg ikke se hvad stien er, og kan så ikke åbne resten af billederne i samme mappe.
Avatar billede stefmeister Nybegynder
07. juni 2004 - 16:37 #12
Nå nu har jeg fået det til at virke.
Har bare lavet en åbn knap alligevel, og sat FileListBox1.Directory := OpenDialog1.FileName;
Avatar billede stefmeister Nybegynder
07. juni 2004 - 16:38 #13
doc404 -> giv et svar så får du point for det med Mask gøgl
Avatar billede doc404 Novice
07. juni 2004 - 21:58 #14
;-)
Avatar billede stefmeister Nybegynder
07. juni 2004 - 23:08 #15
Takker for det.
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