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

Aktuelle Zeit: Mo Mai 20, 2024 19:30

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



Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Classtypes, hm?
BeitragVerfasst: Do Mär 29, 2012 20:13 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 15, 2009 20:48
Beiträge: 111
Wohnort: Berlin
Programmiersprache: Delphi,JS,PHP,AS3,C#
Jo!

Mir fehlen mal wieder grundsätzliche Delphi-Basics.^^

Hier ein paar Beispielklassen, sehr simpel.

Code:
  1. TWaffe = class(TObject)
  2.   public
  3.     procedure Swing; virtual;
  4. end;
  5.  
  6. TSchwert = class(TWaffe)
  7.   public
  8.     //[...]
  9.     procedure Swing; override;
  10. end;
  11.  


Code:
  1. var Waffe: TWaffe;
  2. //[...]
  3. Waffe:=TSchwert.Create;
  4. Waffe.Swing;
  5.  


Das funktioniert als solches nicht. ZB gibt Waffe:=TSchwert.Create direkt nen Fehler aus. Ich kenn mich mit Pointern und sowas garnicht aus, darum hab ich einfach mal Waffe:=@TSchwert.Create versucht, was nen Fehler gibt sobald ich Waffe.Swing aufrufe.

Wie lös ich das Problem? Wenn ich ne TList habe, benutze ich einfach TWaffe(liste[i]).Swing, und er kommt klar auch wenns sich tatsächlich um ein TSchwert handelt.

:oops:

_________________
thanks to the internet we have rule 34, wich states that if something exists, theres a pornographic version of it,


Zuletzt geändert von sirrk am Do Mär 29, 2012 20:32, insgesamt 4-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Classtypes, hm?
BeitragVerfasst: Do Mär 29, 2012 20:18 
Offline
DGL Member

Registriert: Mo Dez 26, 2005 22:27
Beiträge: 117
Programmiersprache: Pascal, C++
Hi,

wie hängt den die Klasse TWeapon mit TWaffe bzw TSchwert zusammen? Du kannst ja auch nicht ohne weiteres Waffe als TWeapon deklarieren und als TSchwert initalisieren.

lg

edit: Poste mal bitte deine gesamten Klassen (die relevanten Teile) und die wichtigsten Proceduren ( Create usw ) um zu sehen wie du was deklarierst und aufrufst

_________________
Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Classtypes, hm?
BeitragVerfasst: Do Mär 29, 2012 20:30 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 15, 2009 20:48
Beiträge: 111
Wohnort: Berlin
Programmiersprache: Delphi,JS,PHP,AS3,C#
^^ das war nen typo. Habs editiert. Ums zu verdeutlichen: Ich möchte als Waffe verschiedene, von TWaffe abgeleitete Objekte spawnen, zb ein TSchwert oder n TSpeer oder irgend nen Mist halt, und dann einfach Swing aufrufen.^^

_________________
thanks to the internet we have rule 34, wich states that if something exists, theres a pornographic version of it,


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Classtypes, hm?
BeitragVerfasst: Do Mär 29, 2012 20:49 
Offline
DGL Member

Registriert: Mo Dez 26, 2005 22:27
Beiträge: 117
Programmiersprache: Pascal, C++
Hm, sieht eigentlich okay aus..

Zumindest dein Waffe:=TSchwert.Create sollte eigentlich so keine Probleme erzeugen. Was Probleme machen könnte ist dein Waffe.Swing, denn dein Progamm weiß ja nicht, dass deine Waffe (vom Typ TWaffe) als TSchwert behandelt werden soll (oder als Speer oder was auch immer). Kann man so casten:

Code:
  1. (Waffe as TSchwert).Swing;



Wie sieht den deine TSchwert.Create aus? Übernimmst du die von TWaffe oder hat die Klasse einen eigenen Konstruktor?

_________________
Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Classtypes, hm?
BeitragVerfasst: Do Mär 29, 2012 23:10 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 15, 2009 20:48
Beiträge: 111
Wohnort: Berlin
Programmiersprache: Delphi,JS,PHP,AS3,C#
Habs gefixt und es funktioniert nun doch alles wie ich ursprünglich geplant hatte. das problem hing mit inherited im construktor zusammen. dummer fehler

nicht mein tag :x

_________________
thanks to the internet we have rule 34, wich states that if something exists, theres a pornographic version of it,


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Classtypes, hm?
BeitragVerfasst: Fr Mär 30, 2012 00:24 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
Hey,

@Carmageddon: TWaffe muss nicht wissen ob es ein Schwert oder ein Speer ist und Swing funktioniert trotzdem wunderbar. Denn Swing ist nicht ohne Grund virtual und wird von den abgeleiteten Klassen überschrieben ;)

MfG Bergmann

_________________
Aktuelle Projekte: BumpMapGenerator, Massive Universe Online
Auf meiner Homepage gibt auch noch paar Projekte und Infos von mir.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Classtypes, hm?
BeitragVerfasst: Fr Mär 30, 2012 09:40 
Offline
DGL Member

Registriert: Mo Dez 26, 2005 22:27
Beiträge: 117
Programmiersprache: Pascal, C++
Bergmann89 hat geschrieben:
Hey,

@Carmageddon: TWaffe muss nicht wissen ob es ein Schwert oder ein Speer ist und Swing funktioniert trotzdem wunderbar. Denn Swing ist nicht ohne Grund virtual und wird von den abgeleiteten Klassen überschrieben ;)

MfG Bergmann



Aber sicher ist sicher :D
Nein stimmt natürlich, ich habe ja auch gesagt: Es könnte so sein, weil ich keinen anderen Fehler gesehen habe. Es gibt ja bekanntlich die verrücktesten Fehlerquellen :P

_________________
Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 20 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.026s | 14 Queries | GZIP : On ]