tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
611
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    vralfy vralfy ist offline Rookie
    Registriert seit
    Jan 2004
    Ort
    Zeppernick
    Beiträge
    9
    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

  2. #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.
     

  3. #3
    vralfy vralfy ist offline Rookie
    Registriert seit
    Jan 2004
    Ort
    Zeppernick
    Beiträge
    9
    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.
    egal was fuer eine Anweisung, es ist ein Fehler.
    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 muss
     
    Henning hat geduscht

  4. #4
    Schattenläufer Schattenläufer ist offline Grünschnabel
    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

  1. Klassen erstellen-> Anfänger
    Von Steusi im Forum PHP
    Antworten: 11
    Letzter Beitrag: 17.12.08, 15:55
  2. OOP Klassen erstellen ?
    Von Stephan Liebig im Forum C/C++
    Antworten: 1
    Letzter Beitrag: 20.12.07, 14:42
  3. Jar erstellen und Klassen in Jar packen?
    Von ziploader im Forum Java
    Antworten: 1
    Letzter Beitrag: 30.03.06, 15:47
  4. JAXB und konkrete Klassen erstellen
    Von schnuffie im Forum Java
    Antworten: 8
    Letzter Beitrag: 12.10.05, 21:50
  5. Assistent zum erstellen von Klassen in PHP
    Von dibe0014 im Forum PHP
    Antworten: 2
    Letzter Beitrag: 22.01.05, 14:47