Einzelnen Beitrag anzeigen

Deinhaus

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

AW: eigene Klasse; Constructor inkl. TImage

  Alt 22. Jun 2010, 22:50
Hm.. hab das Gefühl, dass ich nen Schritt weiter bin, aber so ganz rund läuft das noch nicht.

Hier nochmal die Klasse:
Delphi-Quellcode:
unit enemy;

interface

uses ExtCtrls,Classes;

 Type TEnemy = class(TComponent)
      private

      public
        enemyimage : TImage;
        enemyname : string;
        enemypath : string;
        enemysize : integer;
        enemypriority : double;

        constructor Create();
    end;

    TEnemyArray = array of TEnemy;

implementation

Constructor TEnemy.Create;
begin
   enemyimage := enemyimage.Create(self);
   //enemyimage.Left := 400;
   //enemyimage.Top := 400;
   //enemyimage.AutoSize := true;
end;
und die Prozedur:
Delphi-Quellcode:

procedure tfrm_main.init_enemyarray();
VAR I : integer ;
begin
  SetLength(EnemyArray,FileListBox1.Count+1);
  try

    for I := 0 to FileListBox1.Count-1 do
    begin
      EnemyArray[I] := TEnemy.Create;
      // So lief es ohne CONSTURCTOR
      //EnemyArray[I].enemyimage := TImage.Create(self);
      EnemyArray[I].enemyname := FileListBox1.Items.Strings[I];
      EnemyArray[I].enemyimage.Picture.Icon.Handle := GetShellIcon(FileListBox1.Directory+'\'+FileListBox1.Items.Strings[I], True, False);
    end;
  except
  on E : Exception do
    begin
      WriteLog(E.Message + ' : ' + IntToStr(I));
      ShowMessage(E.Message + ' : ' + IntToStr(I));
    end;
  end;
end;
Zu dem nicht funktionieren CONSTRUCTOR kommt auch noch, die Frage, ob ich EnemyArray[I].enemyimage.Picture.Icon.Handle auch beim Create zuweisen kann ? Also quasi das Handle bei Instanziierung übergeben.

READ-ONLY für das Image und auslesen per GET kommt später

Hier noch die Fehlermeldung vom EXCEPT:
"Zugriffsverletzung bei Adresse 004BE9EB in Modul 'ADMINV.exe'. Lesen von Adresse 00000000"

Ich vermute jetzt mal, dass das Objekt nicht instanziiert ist und nicht gefunden wird.

Vielen Dank schon mal für die Unterstützung

Gruß
Daniel

Geändert von Deinhaus (22. Jun 2010 um 23:04 Uhr) Grund: add -> Fehlermeldung
  Mit Zitat antworten Zitat