Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Sa Jul 05, 2025 00:34

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
BeitragVerfasst: So Feb 16, 2003 10:48 
Hallo!

Seit ich folgendes als Klasse und nicht mehr als Object deklariere, tritt eine Exception der Klasse EAccessViolation auf.

Lediglich die Zeilen
Code:
  1. subplaneten : array of TPlanet;
  2.  
  3. procedure Subplanet(planet:TPlanet);

sind neu. Gerade weil diese rekursive Definition mit Objekttypen nicht geklappt hat, wollte ich eine Klasse draus machen.

Code:
  1.  
  2.  
  3.                 TPlanet = class
  4.  
  5.                                public
  6.  
  7.                                 name : string;
  8.  
  9.                                 radius : TReell;
  10.  
  11.                                 textur : GLuint;
  12.  
  13.                                 subplaneten : array of TPlanet;
  14.  
  15.                                 constructor Konstruiere;
  16.  
  17.                                 procedure Init (lname, ltexturdatei: string;
  18.  
  19.                                  la,le,lm,ln,lo,li,lw,lt0:TReell);
  20.  
  21.                                 function AktuellePosition(moment:TWertzeit):TVektor;
  22.  
  23.                                 procedure Subplanet(planet:TPlanet);
  24.  
  25.                                 destructor Destruiere;
  26.  
  27.                                private
  28.  
  29.                                 a,e,m,n,o,i,w,t0 : TReell;
  30.  
  31.                           end;
  32.  
  33.  


Bei der Fehlermeldung war die letzte Zeile (end.) aus der dpr-Datei grün unterlegt:

Code:
  1.  
  2.  
  3. program test;
  4.  
  5. uses
  6.  
  7.   Forms,
  8.  
  9.   Windows,
  10.  
  11.   test_form;
  12.  
  13. begin
  14.  
  15.   Application.Initialize;
  16.  
  17.   Application.Title := 'test';
  18.  
  19.   Application.CreateForm(TTestForm, TestForm);
  20.  
  21.   Application.Run;
  22.  
  23. end.
  24.  
  25.  


Vielleicht könntet ihr mir ein paar Tipps geben?

Vielen Dank :roll: , Martin.


Nach oben
  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Feb 16, 2003 11:46 
Offline
Fels i.d. Brandung
Benutzeravatar

Registriert: Sa Mai 04, 2002 19:48
Beiträge: 3830
Wohnort: Tespe (nahe Hamburg)
Klingt verdammt danach, dass Du das Objekt nicht zuvor creagted hast:

Code:
  1. planet:=TPlanet.Create;


ce

_________________
"Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: danke, aber noch eine Frage
BeitragVerfasst: So Feb 16, 2003 12:35 
Hi,

vielen Dank, so funktioniert es:
Code:
  1.  
  2.  
  3. planet:=TPlanet.Create;
  4.  
  5. oder
  6.  
  7. planet:=TPlanet.Konstruiere;
  8.  
  9.  


Hab ich da etwa den Constructor Create mit Konstruiere überschrieben, oder was ist Create? Ich habe doch der Klasse TPlanet nichts vererbt?!

Vorher hatte ich planet so konstruiert:
Code:
  1.  
  2.  
  3. planet.Konstruiere;
  4.  
  5.  


Warum ging das nicht?

Nochmals vielen Dank :D , Martin.


Nach oben
  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Feb 16, 2003 14:17 
Offline
Fels i.d. Brandung
Benutzeravatar

Registriert: Sa Mai 04, 2002 19:48
Beiträge: 3830
Wohnort: Tespe (nahe Hamburg)
Weil Du dann ein Objekt aufrufst, welches zu dem Zeitpunkt gar nicht exisiterst. Du mußt dir erst eine Instanz davon bilden!

_________________
"Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 3 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 15 Queries | GZIP : On ]