![]() |
Eigene Klasse als Array; mit TImage
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:
Der Code, mit dem ich versuche das Array zu füllen:
Type TEnemy = class
private public name : string; path : string; image : TImage; end; TEnemieArray = array of TEnemy;
Delphi-Quellcode:
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 ?
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 Fehlermeldung des TRY-EXCEPT: >> Zugriffsverletzung bei Adresse 004C6CB3 in Modul 'ADMINV.exe'. Lesen von Adresse 000001B0 : 0 << Gruß Daniel |
AW: Eigene Klasse als Array; mit TImage
Das müsste in etwa so gehen:
Delphi-Quellcode:
P.S. Warum schreibst du das englische Wort enemy für Feind mit ie? Oder ist damit etwas anderes gemeint? ;)
EnemieArray[i].image := TJPEGImage.Create; //bin mir jetzt nicht sicher, ob TJPEGImage richtig ist...
|
AW: Eigene Klasse als Array; mit TImage
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:
GrußEnemyArray[I] := TEnemy.Create; EnemyArray[I].fileimage := TImage.Create(self); Daniel |
AW: Eigene Klasse als Array; mit TImage
Sauberer fände ich es allerdings, wenn sich die Klasse TEnemy um das Erzeugen und Freigeben des Images kümmern würde.
|
AW: Eigene Klasse als Array; mit TImage
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:48 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