AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Eigene Klasse als Array; mit TImage

Ein Thema von Deinhaus · begonnen am 22. Jun 2010 · letzter Beitrag vom 23. Jun 2010
Antwort Antwort
Deinhaus

Registriert seit: 31. Jan 2008
12 Beiträge
 
#1

Eigene Klasse als Array; mit TImage

  Alt 22. Jun 2010, 19:43
Hi,

ich habe ein kleines Problem mit einer Eigenschaft meiner Klasse.
In der Klasse sind Strings und ein TImage. die Strings kann ich zuweisen, das Image leider nicht.

Der Code meiner Klasse TEnemy:
Delphi-Quellcode:
Type TEnemy = class
      private
        
      public
        name : string;
        path : string;
        image : TImage;
    end;

    TEnemieArray = array of TEnemy;
Der Code, mit dem ich versuche das Array zu füllen:
Delphi-Quellcode:
procedure tfrm_main.init_enemiearray();
VAR I : integer ;
    MyIcon:TIcon;
begin
  SetLength(EnemieArray,FileListBox1.Count+1);
  try
    MyIcon:=TIcon.Create;
    for I := 0 to FileListBox1.Count-1 do
    begin
      EnemieArray[I] := TEnemy.Create;
      MyIcon.Handle := GetShellIcon(FileListBox1.Directory+'\'+FileListBox1.Items.Strings[I], True, False);
      EnemieArray[I].name := FileListBox1.Items.Strings[I];
      EnemieArray[I].image.Picture.Icon. := MyIcon;
    end;
    MyIcon.Free;
  except
  on E : Exception do
    begin
      ShowMessage(E.Message + ' : ' + IntToStr(I));
    end;
  end;
end;
Die Exception löst immer aus, wenn ich MyIcon dem Array.image zuweisen will. Das Zuweisen von MyIcon zu einem Image.picture.icon auf der GUI funzt einwandfrei. Warum klappt das nicht mit dem TImage in dem Array meiner Klasse ?

Die Fehlermeldung des TRY-EXCEPT:
>> Zugriffsverletzung bei Adresse 004C6CB3 in Modul 'ADMINV.exe'. Lesen von Adresse 000001B0 : 0 <<

Gruß
Daniel
  Mit Zitat antworten Zitat
Benutzerbild von Lumpiluk
Lumpiluk

Registriert seit: 25. Dez 2008
110 Beiträge
 
#2

AW: Eigene Klasse als Array; mit TImage

  Alt 22. Jun 2010, 19:48
Das müsste in etwa so gehen:
EnemieArray[i].image := TJPEGImage.Create; //bin mir jetzt nicht sicher, ob TJPEGImage richtig ist... P.S. Warum schreibst du das englische Wort enemy für Feind mit ie? Oder ist damit etwas anderes gemeint?
  Mit Zitat antworten Zitat
Deinhaus

Registriert seit: 31. Jan 2008
12 Beiträge
 
#3

AW: Eigene Klasse als Array; mit TImage

  Alt 22. Jun 2010, 19:59
Jo.. das ie ist ein Überbleibsel von der Bezeichnung enemies.. habs dann umbenannt und darauf net geachtet Danke für den Hinweis.

Hab die Lösung gefunden, danke

wusste nicht, dass ich nach dem create für das Object im Array noch ein create für das image durchführen muss

der code geht jetzt:
Delphi-Quellcode:
 
EnemyArray[I] := TEnemy.Create;
EnemyArray[I].fileimage := TImage.Create(self);
Gruß
Daniel
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Eigene Klasse als Array; mit TImage

  Alt 23. Jun 2010, 08:22
Sauberer fände ich es allerdings, wenn sich die Klasse TEnemy um das Erzeugen und Freigeben des Images kümmern würde.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Deinhaus

Registriert seit: 31. Jan 2008
12 Beiträge
 
#5

AW: Eigene Klasse als Array; mit TImage

  Alt 23. Jun 2010, 08:46
Aber natürlich !

Ist in Arbeit

siehe: http://www.delphipraxis.net/1030940-post4.html

Gruß
Daniel
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:56 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