Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Laden von Bildern (https://www.delphipraxis.net/104909-laden-von-bildern.html)

Mooshead 12. Dez 2007 17:29


Laden von Bildern
 
Hallo,

ich möchte mehrere Bilder mit einem Anfangsindex laden.
Also z.B. die Bilder: 'Bild12.jpg' bis 'Bildxx.jpg'. Es sollen so viele Bilder geladen werden wie vorhanden sind.
Delphi-Quellcode:
 var Bilder: array of TPicture;
Delphi-Quellcode:
      repeat
           setlength(bilder,i+1);
           Bilder[i]:=TPicture.Create;
           Bilder[i].LoadFromFile(ExtractFilePath(Application.ExeName)+
                                  Bildername.Text+
                                  IntToStr(StrToInt(Startindex.Text)+i)+
                                  '.jpg');
           inc(i);

      until not (FileExists(ExtractFilePath(Application.ExeName)+
                            Bildername.Text+
                            IntToStr(StrToInt(Startindex.Text)+i)+
                            '.jpg'));
Ich weiß nicht genau wo der Fehler liegt

DeddyH 12. Dez 2007 17:38

Re: Laden von Bildern
 
Wieso nimmst nicht gleich TJPEGImage anstatt TPicture? Außerdem solltest Du eine Kopfschleife verwenden, sonst knallt es, wenn das erste Bild schon nicht existiert.

Mooshead 12. Dez 2007 17:40

Re: Laden von Bildern
 
ja eine Kopfzeile hab ich auch.

aber wie geht das mit dem TJPEGImage??

DeddyH 12. Dez 2007 17:51

Re: Laden von Bildern
 
Ungetestet:
Delphi-Quellcode:
uses jpeg;

...
procedure TForm1.BilderLaden;
var i: integer;
    sPath: string;
begin
  SetLength(Bilder,0);
  i := StrToInt(StartIndex.Text);
  sPath := Format('%s%s%d.jpg',[ExtractFilePath(ParamStr(0)),Bildername.Text,i]);
  while FileExists(sPath) do
    try
      SetLength(Bilder,Succ(Length(Bilder)));
      Bilder[Pred(Length(Bilder))] := TJPEGImage.Create;
      Bilder[Pred(Length(Bilder))].LoadFromFile(sPath);
      inc(i);
      sPath := Format('%s%s%d.jpg',[ExtractFilePath(ParamStr(0)),Bildername.Text,i]);
    except
      MessageBox(Handle,'Fehler beim Holen des Bildes','Fehler',MB_OK);
    end;
end;

STS301 12. Dez 2007 17:52

Re: Laden von Bildern
 
im Eigenschaftefenster Picture auswählen und dann einfügen, du musst nur das richtige Format wählen

Mooshead 12. Dez 2007 18:03

Re: Laden von Bildern
 
Danke das sieht gut aus!

Delphi-Quellcode:
Pred(length(dynamisches_array)) //ist doch das selbe wie
        high(dynamisches_array)        //oder lieg ich da falsch?

DeddyH 12. Dez 2007 18:05

Re: Laden von Bildern
 
Nö, ist richtig.


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