ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
611
611
EMPFEHLEN
-
Ja ich habe da mal nen Problem.Ich versuche ne Klasse zu erstellen was zaw soweit klappt, beim kompilen aber eine EAccessViolation verursacht.
------------------------------------------------------
type Tcrusher=class(Tobject) //habs auch ohne (Tobject) probiert
private
pVertices:Array of LINEVERTEX;
public
procedure Test();
end;
implementation
procedure Tcrusher.Test();
begin
setlength(pVertices,20);
end;
------------------------------------------------------
mach ich die procedure leer kommt irgendwie kein fehler. aber ich kann mir nicht denken das das an dem setlength liegt. in meinem Programm habe ich auch
var Testi:Tcrusher;
aber Testi.Create geht auch net.Henning hat geduscht
-
06.02.04 13:35 #2
- Registriert seit
- Nov 2001
- Ort
- Gießen
- Beiträge
- 4.091
Hi,
ich hab zwar so auf die Schnelle auch keine Lösung, aber versuch doch einfach mal schrittweise das Problem einzugrenzen.
Wenn es ohne die SetLength-Funktion läuft, wird es vermutlich daran liegen. Als nächsten Schritt würde ich Dir einfach mal empfehlen, den Datentyp des Arrays zu ändern. Nimm einfach mal ein Integer oder einen String und probier es damit aus.
Oder probier Alternativen aus:
Muss das Array ein Member sein oder reicht auch eine lokale Variable?
Muss das Array dynamisch sein?
Muss es überhaupt ein Array sein oder kannst Du auch ein TList verwenden?
Gruss, Dario
PS: Bei der Klassendeklaration das TObject wegzulassen, macht keinen Unterschied - das wird vom Compiler so oder so angehängt, wenn kein Vorfahrtyp angegeben ist.
-
egal was fuer eine Anweisung, es ist ein Fehler.Original geschrieben von Dario Linsky
Hi,
ich hab zwar so auf die Schnelle auch keine Lösung, aber versuch doch einfach mal schrittweise das Problem einzugrenzen.
Wenn es ohne die SetLength-Funktion läuft, wird es vermutlich daran liegen. Als nächsten Schritt würde ich Dir einfach mal empfehlen, den Datentyp des Arrays zu ändern. Nimm einfach mal ein Integer oder einen String und probier es damit aus.
Oder probier Alternativen aus:
Muss das Array ein Member sein oder reicht auch eine lokale Variable?
Muss das Array dynamisch sein?
Muss es überhaupt ein Array sein oder kannst Du auch ein TList verwenden?
Gruss, Dario
PS: Bei der Klassendeklaration das TObject wegzulassen, macht keinen Unterschied - das wird vom Compiler so oder so angehängt, wenn kein Vorfahrtyp angegeben ist.
Datentypänderung bringt nichts
Das array sollte member sein (sonst wäre das wofür ich das mache sinnlos
)
Das array muss leider dynamisch sein un TList geht nicht weil ich in die DirectX-Funktion ein array übergeben mussHenning hat geduscht
-
27.02.04 12:42 #4
- Registriert seit
- Feb 2004
- Beiträge
- 1
Öhm ....
Erst mal Hallo.
Bin neu auf dem Board.
Weiss ja nicht, ob ich dir jetzt zu nahe Trete, aber ist . ggfs. das Insntanziieren selber dein Problem ?
Wenn, du nun nicht zu viel Raus geschnitten hast, hast du noch keine Klassendistanz erzeugt. Das passiert bei Tobject nicht Automatisch.
Testi.create schlägt dann Natürlich fehl ... weil Testi nil ist.
Wäre Dann
Testi := Tcrusher.create ; // Instanzerzeugen
Testi.test; // erst dann ist die Var referenziert.
Ansostens kriegst du ne Acessviolation, wei Du auf ein nicht vorhandenens Object zugreifts.
Gruseln ...
Ähnliche Themen
-
Klassen erstellen-> Anfänger
Von Steusi im Forum PHPAntworten: 11Letzter Beitrag: 17.12.08, 15:55 -
OOP Klassen erstellen ?
Von Stephan Liebig im Forum C/C++Antworten: 1Letzter Beitrag: 20.12.07, 14:42 -
Jar erstellen und Klassen in Jar packen?
Von ziploader im Forum JavaAntworten: 1Letzter Beitrag: 30.03.06, 15:47 -
JAXB und konkrete Klassen erstellen
Von schnuffie im Forum JavaAntworten: 8Letzter Beitrag: 12.10.05, 21:50 -
Assistent zum erstellen von Klassen in PHP
Von dibe0014 im Forum PHPAntworten: 2Letzter Beitrag: 22.01.05, 14:47





Zitieren
Login





