Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Zusammengesetzter Objektname, Array und TImage (https://www.delphipraxis.net/157384-zusammengesetzter-objektname-array-und-timage.html)

ICeYmx 10. Jan 2011 14:11

Delphi-Version: 2009

Zusammengesetzter Objektname, Array und TImage
 
Hallo! Ich bin gerade dabei ein Demonstrationsprogramm für meine Facharbeit zu erstellen. Es dreht sich um die Veranschaulichung von (De-)Fragmentation. Ich habe als Dateisystem ein Array und als Oberfläche ein Haufen TImages:
http://img.max-heine.de/defrag1.jpg

Den Tipp mit FindComponent habe ich hier aus dem Board. Danke! :thumb:

Zur Aktualisierung der Ansicht wollte ich folgendes nutzen:
Delphi-Quellcode:
procedure TForm1.spansichtneu;
var
  I: Integer;
begin
  for I := 1 to 374 do
    begin
      case speicher[I] of
        1:(FindComponent('ids'+inttostr(I)) as TImage).picture.LoadFromFile(pfad+'img\blgu.bmp');
        2:(FindComponent('ids'+inttostr(I)) as TImage).picture.LoadFromFile(pfad+'img\blrt.bmp');
        3:(FindComponent('ids'+inttostr(I)) as TImage).picture.LoadFromFile(pfad+'img\blgr.bmp');
        4:(FindComponent('ids'+inttostr(I)) as TImage).picture.LoadFromFile(pfad+'img\blbl.bmp');
        5:(FindComponent('ids'+inttostr(I)) as TImage).picture.LoadFromFile(pfad+'img\blge.bmp');
      end;
    end;
end;
1-5 sind die Zustände, 1=free, 2=fragmentiert, 3=used, 4=read, 5=write, so im Array hinterlegt, bei Start auf 1, allerdings ohne Picture.
ids### sind die TImages, befinden sich auf einem Panel. Und der Pfad sollte eigentlich auch passen:
Delphi-Quellcode:
pfad:=sysutils.ExtractFilePath(Application.Exename);
Die Bilder liegen in einem Ordner img bei der .exe.

Ich hoffe mir kann jemand helfen... :)

DeddyH 10. Jan 2011 14:15

AW: Zusammengesetzter Objektname, Array und TImage
 
Und was genau ist das Problem? Außer, dass die Schleife bei 369 Durchläufen nichts tut.

Klaus01 10. Jan 2011 14:18

AW: Zusammengesetzter Objektname, Array und TImage
 
Zitat:

Zitat von DeddyH (Beitrag 1073677)
..Außer, dass die Schleife bei 369 Durchläufen nichts tut.

Die Schleife macht doch 374 mal etwas.
Es wird doch geschaut ob der Speicher[i] einen Wert von 1 bis 5 hat
und nicht ob i 1,2,3,4, oder 5 ist.


Aber das Problem würde ich auch gerne erfahren.
Grüße
Klaus

DeddyH 10. Jan 2011 14:19

AW: Zusammengesetzter Objektname, Array und TImage
 
Jepp, sry, das hatte ich falsch interpretiert.

ICeYmx 10. Jan 2011 14:22

AW: Zusammengesetzter Objektname, Array und TImage
 
Achso, ganz vergessen: Ich bekomme eine Zugriffsverletzung, wenn in die Prozedur gesprungen wird.

DeddyH 10. Jan 2011 14:25

AW: Zusammengesetzter Objektname, Array und TImage
 
Wie ist Speicher denn deklariert?

[edit] Wie ist es so?
Delphi-Quellcode:
for I := Low(Speicher) to High(Speicher) do
[/edit]

ICeYmx 10. Jan 2011 14:28

AW: Zusammengesetzter Objektname, Array und TImage
 
Delphi-Quellcode:
var speicher: array[1..374] of byte;
Mit Low und High gleiches Problem.

DeddyH 10. Jan 2011 14:30

AW: Zusammengesetzter Objektname, Array und TImage
 
Und die Images "ids1" bis "ids374" gibt es alle?

[edit] Was passiert, wenn Du so abfragst?
Delphi-Quellcode:
(DeinPanel.FindComponent('ids'+inttostr(I)) as TImage)

ICeYmx 10. Jan 2011 14:36

AW: Zusammengesetzter Objektname, Array und TImage
 
Ich denke, ich weiß, wo der Fehler liegt: Meine Images heißen 001, ... . :roll:

Trotzdem Danke für die Hilfe! :thumb:

DeddyH 10. Jan 2011 14:50

AW: Zusammengesetzter Objektname, Array und TImage
 
Dann können sie ja auch schlecht gefunden und noch schlechter darauf zugegriffen werden. :roll:


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