AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Lazarus (IDE) Exception-Klasse >>External: SIGSEGV<<
Thema durchsuchen
Ansicht
Themen-Optionen

Exception-Klasse >>External: SIGSEGV<<

Offene Frage von "ub60"
Ein Thema von Fernsch · begonnen am 12. Okt 2018 · letzter Beitrag vom 31. Okt 2018
 
Fernsch

Registriert seit: 12. Okt 2018
4 Beiträge
 
#1

Exception-Klasse >>External: SIGSEGV<<

  Alt 12. Okt 2018, 16:44
Ich schreibe an einem kleinen Textadventure mit verschiedenen Räumen.
Lazarus weist auf keinen Fehler beim kompilieren hin, doch sobald ich das Programm starte erhalte ich diesen Fehler:
"Projekt p1 hat Exception-Klasse >>External: SIGSEV<< ausgelöst.
In Datei 'uadventure.pas' in Zeile 86:
Memo1.Lines.add(aktuellerRaum.Beschreibung); "
Ich habe bereits nach Lösungen gesucht, jedoch keine gefunden.

Der Code:
Delphi-Quellcode:
unit uAdventure;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
  ExtCtrls, uKlassenname1;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
    procedure Edit1Change(Sender: TObject);
    procedure Memo1Change(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
  { private declarations }
  public
  { public declarations }
  end;

var
  Form1: TForm1;
  Dachboden, Kueche, Keller, Schlafzimmer, Flur, Badezimmer, Garten, Wohnzimmer, Abstellkammer, Klavierzimmer: TRaum;
  aktuellerRaum: TRaum;
  Eingabe: String;

implementation

{$R *.lfm}

{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
   begin

    Memo1.Lines.add('Hallo, willkommen im Textadventure');


    Dachboden:=TRaum.Create;
    Kueche:=TRaum.Create;
    Keller:=TRaum.Create;
    Schlafzimmer:=TRaum.Create;
    Flur:=TRaum.Create;
    Badezimmer:=TRaum.Create;
    Garten:=TRaum.Create;
    Wohnzimmer:=TRaum.Create;
    Abstellkammer:=TRaum.Create;
    Klavierzimmer:=TRaum.Create;

    Dachboden.Beschreibung:=('Du bist nun im Dachboden.');
    Kueche.Beschreibung:=('Du bist nun in der Küche.');
    Keller.Beschreibung:=('Es muss sich um den Keller handeln.');
    Schlafzimmer.Beschreibung:=('Es muss sich wohl um das Schlafzimmer handeln.');
    Flur.Beschreibung:=('Du stehst im Flur.');
    Badezimmer.Beschreibung:=('Du betrittst das Badezimmer.');
    Garten.Beschreibung:=('Du betrittst Gras und merkst dass du im Garten bist.');
    Wohnzimmer.Beschreibung:=(' Es ist wohl das Wohnzimmer.');
    Abstellkammer.Beschreibung:=('Die Tür öffnet sich und du siehst nur eine kleine Abstellkammer.');
    Klavierzimmer.Beschreibung:=('Als erstes siehst du einen Klavier das mitten im Zimmer steht.');

    Dachboden.setAusgaenge(nil, nil, nil, nil, nil, Wohnzimmer);
    Kueche.setAusgaenge(nil, nil, Klavierzimmer, nil, nil, nil);
    Keller.setAusgaenge(Garten, nil, nil, nil, Wohnzimmer, nil);
    Schlafzimmer.setAusgaenge(nil,nil,nil, Wohnzimmer, nil, nil);
    Flur.setAusgaenge(Wohnzimmer, Badezimmer, Abstellkammer,nil,nil,nil);
    Badezimmer.setAusgaenge(nil, nil, FLur, nil, nil, nil);
    Garten.setAusgaenge( nil, Wohnzimmer, nil, nil, nil, Keller);
    Wohnzimmer.setAusgaenge(Schlafzimmer, Klavierzimmer, Garten, Flur, Dachboden, Keller);
    Abstellkammer.setAusgaenge(nil, Flur, nil, nil, nil, nil);
    Klavierzimmer.setAusgaenge(nil, Kueche, Wohnzimmer, nil, nil, nil);

    aktuellerRaum := Flur;
   end;

procedure TForm1.Button1Click(Sender: TObject);
begin
    Memo1.Lines.clear;

                  Memo1.Lines.add (aktuellerRaum.Beschreibung);

     begin
        Memo1.clear;
        Eingabe:= Edit1.text;

        if (Eingabe = 'Norden') and (aktuellerRaum.Norden <> nil) then
        aktuellerRaum := aktuellerRaum.norden;

        if (Eingabe = 'Osten') and (aktuellerRaum.Osten <> nil) then
        aktuellerRaum := aktuellerRaum.Osten;

        if (Eingabe = 'Sueden') and (aktuellerRaum.Sueden <> nil) then
        aktuellerRaum := aktuellerRaum.Sueden;

         if (Eingabe = 'Westen') and (aktuellerRaum.Westen <> nil) then
        aktuellerRaum := aktuellerRaum.Westen;

         if (Eingabe = 'Rauf') and (aktuellerRaum.Rauf <> nil) then
        aktuellerRaum := aktuellerRaum.Rauf;

         if (Eingabe = 'Runter') and (aktuellerRaum.Runter <> nil) then
        aktuellerRaum := aktuellerRaum.Runter;

        Memo1.Lines.add (aktuellerRaum.Beschreibung);

        if aktuellerRaum.Norden <> nil then Memo1.Lines.Add ('---> Norden');
        if aktuellerRaum.Osten <> nil then Memo1.Lines.Add ('---> Osten');
        if aktuellerRaum.Sueden <> nil then Memo1.Lines.Add ('---> Sueden');
        if aktuellerRaum.Westen <> nil then Memo1.Lines.Add ('---> Westen');
        if aktuellerRaum.Rauf <> nil then Memo1.Lines.Add ('---> Rauf');
        if aktuellerRaum.Runter <> nil then Memo1.Lines.Add ('---> Runter');

     end;

end;

procedure TForm1.Edit1Change(Sender: TObject);
begin

end;

procedure TForm1.Memo1Change(Sender: TObject);
begin

end;

end.




Wäre nett, wenn mir jemand helfen könnte.
LG Fernsch

Geändert von mkinzler (12. Okt 2018 um 16:50 Uhr) Grund: Tag gefixt und mit Delphi-Tag ersetzt
  Mit Zitat antworten Zitat
 


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 15:08 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 by Thomas Breitkreuz