AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

AV bei inherited Create;

Ein Thema von glkgereon · begonnen am 30. Nov 2004 · letzter Beitrag vom 30. Nov 2004
Antwort Antwort
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#1

AV bei inherited Create;

  Alt 30. Nov 2004, 20:52
moin, ich hab mir ne klasse geschrieben, um elo in dwz und umgekehrt umzurechnen (Schach...)

alle folgenden klassen sind von TObject abgeleitet

nun habbich folgende struktur(ich liste einfach mal alle "verlinkten" sachen auf):

Test:=TSpielerTable.Create;
Delphi-Quellcode:
constructor TSpielerTable.Create;
begin
  inherited Create;
  FCount := 0;
  SetLength(Spieler,0);
  Spieler[0] := TSpieler.Create;
end;
Delphi-Quellcode:
constructor TSpieler.Create;
begin
  inherited Create;
  FDaten := TDaten.Create;
  FWerte := TWerte.Create;
end;
Delphi-Quellcode:
constructor TDaten.Create;
begin
  inherited Create;
end;
Delphi-Quellcode:
constructor TWerte.Create;
begin
  inherited Create;
  FUmrechnen.Create;
  FPlayedAgainst.Create;
end;
Delphi-Quellcode:
constructor TUmrechnen.Create;
begin
  inherited Create;
end;
nun kommt bei letzterem beim "inherited Create;" eine Av (Zugriffsverletzung bei adresse 40005B99 im modul rtl70.bpl)

das wirklich seltsame ist nun, das er, wenn man bei der av auf ok klickt, er nach F9 im Code sofort zur Destroy-Procedure springt... ...ist das normal?

die klasse TUmrechnen besteht nur aus funktionen...aber das einbauen eines Dummy-Strings schafft auch keine abhilfe....

ich bin echt am verzweifeln (*heul*)

falls es wen interessiert...TUmrechnen ist wie folgt deklariert:
Delphi-Quellcode:
//##### TUmrechnen #####
  TUmrechnen = class(TObject)
    private
      FDummy: string;
    published
      constructor Create;
      destructor Destroy; override;
      function EloToDwz(Elo: integer): integer;
      function EloToIngo(Elo: integer): integer;
      function EloToBcf(Elo: integer): integer;
      function DwzToElo(Dwz: integer): integer;
      function DwzToIngo(Dwz: integer): integer;
      function DwzToBcf(Dwz: integer): integer;
      function IngoToElo(Ingo: integer): integer;
      function IngoToDwz(Ingo: integer): integer;
      function IngoToBcf(Ingo: integer): integer;
      function BcfToElo(Bcf: integer): integer;
      function BcfToDwz(Bcf: integer): integer;
      function BcfToIngo(Bcf: integer): integer;
    end;
//##### Ende TUmrechnen #####
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#2

Re: AV bei inherited Create;

  Alt 30. Nov 2004, 20:57
Zitat von glkgereon:
das wirklich seltsame ist nun, das er, wenn man bei der av auf ok klickt, er nach F9 im Code sofort zur Destroy-Procedure springt... ...ist das normal?
Ja das ist normal. Sobald eine Exception im Constructor ausgelöst wird, wird das Objekt sofort wieder zerstört. Ich würde mal das Problem beim erstellen des Objektes suchen.
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#3

Re: AV bei inherited Create;

  Alt 30. Nov 2004, 21:00
das ist der KOMPLETTE code den ich gepostet hab...alle code-ausschnitte sind zu 100% vollständig

auch die zugriffe in TSpielerTable.Create auf FCount bzw das SetLength lösen keine weitern procedures aus...

daran verzweifele ich ja, es muss imho an dem Inherited Create; liegen, da ansonsten nichts gemacht wird

und insbesondere das verwirrt mich ja so
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#4

Re: AV bei inherited Create;

  Alt 30. Nov 2004, 21:03
Achso. Hab ich nicht gesehen und da ist doch auch schon der Fehler:

fUmrechnen.Create ist falsch, genauso wie FPlayedAgainst.Create;. Komisch bei den anderen hast du es doch richtig gemacht.

Create muss immer an der Klasse aufgerufen werden, nie an der Variablen.
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
Keldorn

Registriert seit: 6. Mär 2003
Ort: Meißen
876 Beiträge
 
Delphi 10.1 Berlin Professional
 
#5

Re: AV bei inherited Create;

  Alt 30. Nov 2004, 21:04
Zitat:
SetLength(Spieler,0);
Spieler[0] := TSpieler.Create;
es sollte SetLength(Spieler,1); heißen, du willst ja ein element haben, spieler[0] ist richtig.
Evtl kommst du hier mit einer objectlist statt einem dyn. array besser.

Mfg Frank

Lükes Grundlage der Programmierung:
Es wird nicht funktionieren
(Murphy)
  Mit Zitat antworten Zitat
Keldorn

Registriert seit: 6. Mär 2003
Ort: Meißen
876 Beiträge
 
Delphi 10.1 Berlin Professional
 
#6

Re: AV bei inherited Create;

  Alt 30. Nov 2004, 21:05
Zitat:
SetLength(Spieler,0);
Spieler[0] := TSpieler.Create;
es sollte SetLength(Spieler,1); heißen, du willst ja ein element haben, spieler[0] ist richtig.
Evtl kommst du hier mit einer objectlist statt einem dyn. array besser.

Mfg Frank

Lükes Grundlage der Programmierung:
Es wird nicht funktionieren
(Murphy)
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#7

Re: AV bei inherited Create;

  Alt 30. Nov 2004, 21:10
ich weiss net, so ein fehler muss ja wohl wirklich net sein *den kopf schüttel*

und das SetLength war auch noch falsch...
warum erstelle ich da überhaupt einen Spieler?

das is doch voll der blödsinn
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Antwort Antwort


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 11:44 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