![]() |
AV bei inherited Create;
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):
Delphi-Quellcode:
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:
nun kommt bei letzterem beim "inherited Create;" eine Av (Zugriffsverletzung bei adresse 40005B99 im modul rtl70.bpl) :?
constructor TUmrechnen.Create;
begin inherited Create; end; 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... :wiejetzt: ...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*) :cry: 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 ##### |
Re: AV bei inherited Create;
Zitat:
|
Re: AV bei inherited Create;
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 |
Re: AV bei inherited Create;
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. :gruebel: Create muss immer an der Klasse aufgerufen werden, nie an der Variablen. |
Re: AV bei inherited Create;
Zitat:
Evtl kommst du hier mit einer objectlist statt einem dyn. array besser. Mfg Frank |
Re: AV bei inherited Create;
Zitat:
Evtl kommst du hier mit einer objectlist statt einem dyn. array besser. Mfg Frank |
Re: AV bei inherited Create;
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 :gruebel: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:04 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