AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi EAccessViolation bei privaten Variablen? Ratlos! :(

EAccessViolation bei privaten Variablen? Ratlos! :(

Ein Thema von sonbeta2 · begonnen am 5. Apr 2015 · letzter Beitrag vom 6. Apr 2015
 
sonbeta2

Registriert seit: 5. Apr 2015
4 Beiträge
 
#1

EAccessViolation bei privaten Variablen? Ratlos! :(

  Alt 5. Apr 2015, 15:10
Guten Tag liebe Community!

Ich muss für meine Facharbeit eine Simulation schreiben, die das Thema "Frauenversteher" umfasst.
Zunächst habe ich 3 Units. Das Formular, das Spiel, den Kandidaten. Programm: Delphi 5.

Delphi-Quellcode:
TYPE TKandidat = Class
     PRIVATE
       Nummer: Integer;
       Punkte: Integer;
     PUBLIC
       CONSTRUCTOR Create(pNummer: Integer);
       FUNCTION GibNummer: Integer;
       FUNCTION GibPunkte: Integer;
       PROCEDURE Aktualisierung(pPunkte: Integer);
     END; (* TKandidat *)
Delphi-Quellcode:
TYPE TSpiel = Class
     PRIVATE
       Speicher: ARRAY[1..3] OF TKandidat;
       AnzahlKandidaten: Integer;
       Gewinnlimit: Integer;
       Frage, Antwort, Ende: Boolean;
       Runde: Integer;
     PUBLIC
       CONSTRUCTOR Create(pAnzahl, pPunkte: Integer);
       PROCEDURE Schnelldurchlauf(pKandidat, pPunkte: Integer);
       FUNCTION Ausgabe: String;
       FUNCTION Wahrscheinlichkeit(pAnzahl, pPunkte: Integer): String;
     END; (* TSpiel *)

CONSTRUCTOR TSpiel.Create(pAnzahl, pPunkte: Integer);
VAR Zaehler: Integer;
BEGIN Runde := 0;
      Ende := False;
      Gewinnlimit := pPunkte;
      AnzahlKandidaten := pAnzahl;
      //Frage := False;
      FOR Zaehler := 1 TO pAnzahl DO
       Speicher[Zaehler] := TKandidat.Create(Zaehler);
END; (* CSTR *)
Der Fehler tritt in der Unit TSpiel auf mit der Meldung:
Im Projekt ... ist eine Exception der EAccessViolation aufgetreten. Meldung: 'Zugriffsverletzung bei Adresse: 00441AAB in Modul ... Schreiben von Adresse 0000001C'. ...


So wird der Konstruktor etc aufgerufen:
Delphi-Quellcode:
PROCEDURE TFrauenversteher.BtStartClick(Sender: TObject);
VAR AnzKandidat, Gewinnlimit: Integer;
BEGIN AnzKandidat := StrToInt(EdKandidaten.Text);
       Gewinnlimit := StrToInt(EdPunkte.Text);
      IF (AnzKandidat < 1) OR (Gewinnlimit < 1) THEN
        LbAusgabe.Caption := 'Bitte geben Sie Daten über 0 an.'
      ELSE BEGIN
                Spiel.Create(AnzKandidat, Gewinnlimit);
           Spiel.Schnelldurchlauf(AnzKandidat, Gewinnlimit);
                // LbAusgabe.Caption := Spiel.Ausgabe
      END; (* ELSE *)
END;
Ich habe mir alles schon hunderte Male angeguckt und auch gegooglet, aber ich werde seit Stunden nicht fündig! Ich hoffe ihr könnt mir etwas behilflich sein.

MfG
  Mit Zitat antworten Zitat
 

 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 05:42 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