Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Images laden (https://www.delphipraxis.net/170135-images-laden.html)

len123 2. Sep 2012 20:03

Images laden
 
Hallo zusammen
ich hab ein ordner mit ganz vielen Fotos, die dann alle, in der FormCreate Prozedur in jeweils ein image auf meiner form geladen werden.
Nur is das lästig jedesmal jedes mal:
Code:
Image1.Picture.LoadFromFile('Bild1.jpg');
zuschreiben, wen man 60 bilder hat.
Kann man das nicht auch anders machen?
Ich denke so in der Richtung:
Code:
procedure TForm1.FormCreate(Sender: TObject);
var i: Integer;
begin
for i := 1 to 60 do
Image1.Picture.LoadFromFile('Bild'+IntToStr(i)+'.jpg'); //es bringt leider nichts weil man i nicht bei image einsetzen kann
i :=i + 1;
until i := 60
end;
Bzw. wie kann das programm ermitteln wie viele bilder in einem Ordner sind, und dann alle in die images laden?

Helmi 2. Sep 2012 20:12

AW: Images laden
 
Hallo,

mittels
Delphi-Quellcode:
FindComponent
kannst du Komponenten anhand des Names suchen.

Das würde dann etwa so aussehen:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
const
  Pfad = 'C:\derOrdnerderdieBilderbeinhaltet\';

var
  i: Integer;
  S: String;
  Image_Temp: TImage;

begin
  for i := 1 to 60 do
    begin
      //Image anhand des Namen suchen und in Temp-Variable laden
      Image_Temp := FindComponent(Format('Image%d', [i])) as TImage;

      //Dateiname aufbauen
      S := Pfad + Format('Bild%d.jpg', [i]);

      //Image und Datei vorhanden? - Datei in Image laden
      If Assigned(Image_Temp) and FileExists(S) then
        Image_Temp.Picture.LoadFromFile(S);
    end;
end;
Du solltest unbedingt den Pfad des Bildes mitangeben um sicher zu sein, dass das Bild auch wirklich gefunden wird.

himitsu 2. Sep 2012 21:04

AW: Images laden
 
Du hast es geschafft 60 Images auf eine Form draufzubekommen?

Warum lädst du denn die Bilder nicht direkt in die Komponenten rein, also schon im OI?

PS: Es ist nicht so gut, wenn du relative Pfade nutzt, denn das Arbeitsverzeichnis muß nicht immer deinem Programmverzeichnis entsprechen.
Schau dir mal
Delphi-Quellcode:
ExtractFilePath(ParamStr(0))
oder
Delphi-Quellcode:
ExtractFilePath(Application.ExeName)
an und verwende zukünftig nur noch absolute Pfade.

len123 8. Sep 2012 15:22

AW: Images laden
 
hey vielen dank
das hilft mir weiter
@himitsu ich hab bei 30 aufgehört weil ich kein bock mehr hatte, aber ich werd mich da mal einlesen ;)

Mavarik 10. Sep 2012 14:14

AW: Images laden
 
Warum auf ein Form klicken?

Speicher die Bilder doch in einer Resource-Datei

Mavarik

BMI 10. Sep 2012 16:06

AW: Images laden
 
Zitat:

Zitat von himitsu (Beitrag 1181109)
Du hast es geschafft 60 Images auf eine Form draufzubekommen?

...

ist doch eigentlich einfach.
Shift und Kompo --- und dann nur 60x Klicken.
Oder mit For-schleife und dann dynamisch images-Kompos erstellen. :D

v.a. 60 images vielleicht sog noch mit 14 mpx Digicam-pictures gefüllt
(4320 x 3240, als BMP im RAM 42,0 MB )

macht auch gerade nur mal 2520 MB RAM.

paßt doch super. Bleiben auf nem modernen Standard-Spielerechner noch immer 29.480 GB frei. :D


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