Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Lazarus (IDE) (https://www.delphipraxis.net/81-lazarus-ide/)
-   -   [Gelöst] Exception-Klasse >>External:SIGSEGV<< (https://www.delphipraxis.net/184355-%5Bgeloest%5D-exception-klasse-external-sigsegv.html)

Griesi 19. Mär 2015 15:34


[Gelöst] Exception-Klasse >>External:SIGSEGV<<
 
Ich schreibe zurzeit ein kleines Spiel und möchte bestimmten Feldern in einem Array einen Wert zuweisen.
Beim Kompilieren weist Lazarus keine Fehler auf, aber sobald er das Projekt startet bekomme ich den Error:

"Projekt project1 hat Exception Klasse >>External:SIGSEGV<< ausgelöst.
In Datei 'unit2.pas' in Zeile 195:
Home.Tiles[9.i]:=1;"

Ich habe schon nach Problemlösungen gesucht, aber bisher konnte mir keine wirklich weiterhelfen.
Ich hänge mal den zugehörigen Code an.

Delphi-Quellcode:
 THero = class
  private

  public
    Map:integer;
    NewPosX:integer;
    NewPosY:integer;
    ActPosX:integer;
    ActPosY:integer;
    Equip:string;
    procedure MoveUp;
    procedure MoveDown;
    procedure MoveLeft;
    procedure MoveRight;
  //  constructor Create;
  end;
   TMap = class
  private

  public
    Tiles: Array[0..32,0..18] of integer;
    SpawnX:integer;
    SpawnY:integer;
    constructor Create;
   end;

  { TForm2 }

  TForm2 = class(TForm)
    Image1: TImage;
    Image2: TImage;
    HeroDown: TImage;
    HeroUp: TImage;
    HeroLeft: TImage;
    HeroRight: TImage;
    procedure FormCreate(Sender: TObject);
    procedure FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure HomeInitialisierung;

  private
    { private declarations }
  public
    { public declarations }
  end;

var
    Form2: TForm2;
     Hero: THero;
   Home,Center,East,Hosp1,Hosp2,HospRoof:Tmap;
implementation

{$R *.lfm}

{ TForm2 }

constructor TMap.Create;
var i,j:integer;
begin
  for i:=0 to 32 do
      begin
        for j:= 0 to 18 do
          begin
            Tiles[i,j]:=0;
          end;
      end;
self.SpawnX:=0;
self.SpawnY:=0;
end;

procedure TForm2.FormCreate(Sender: TObject);
begin
  Form2.Image1.visible:=true;
  Home.Create;
  Center.Create;
  East.Create;
  Hosp1.Create;
  Hosp2.Create;
  HospRoof.Create;
  Form2.HomeInitialisierung;

procedure TForm2.HomeInitialisierung;
var
   i,j:integer;
begin
  for i:=6 to 12 do
    begin
        Home.Tiles[9,i]:=1;
    end;
  //Home.Tiles[10,6]:=1;
  //Home.Tiles[10,9]:=1;
  //Home.Tiles[10,10]:=1;
  //Home.Tiles[10,13]:=1;

end;
Wäre toll, wenn mir jemand helfen könnte.

LG Griesi

Klaus01 19. Mär 2015 15:37

AW: Exception-Klasse >>External:SIGSEGV<<, Hilfe gesucht
 
Home := TMap.create im FormCreate

bei den nachfolgenden auch verbessern.

Grüße
Klaus

DeddyH 19. Mär 2015 15:37

AW: Exception-Klasse >>External:SIGSEGV<<, Hilfe gesucht
 
Delphi-Quellcode:
Home := TMap.Create;
Dasselbe für die anderen ähnlichen Aufrufe.

[edit] Und lass bitte in den Methoden den Zugriff auf die globale Form-Variable weg oder ersetze sie durch Self.
Zitat:

Delphi-Quellcode:
procedure TForm2.FormCreate(Sender: TObject);
begin
  {Form2.}Image1.visible:=true;

[/edit]

Griesi 19. Mär 2015 15:44

AW: [Gelöst] Exception-Klasse >>External:SIGSEGV<<
 
Danke für die schnelle Hilfe. Hätte bestimmt noch eine Ewigkeit gebraucht, um das zu bemerken.
Zitat:

[edit] Und lass bitte in den Methoden den Zugriff auf die globale Form-Variable weg oder ersetze sie durch Self.
Das mit der globalen Form-Variable ist nur rein provisorisch gewesen.

Trotzdem danke

LG Griesi


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