Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Klasse mit Nachfahren als Parameter (https://www.delphipraxis.net/139148-klasse-mit-nachfahren-als-parameter.html)

Vasco da Gama 24. Aug 2009 18:08


Klasse mit Nachfahren als Parameter
 
Hallo Spezialisten :thumb:

Ich bin wohl einfach zu blöd... wie kann ich einer procedure als Parameter eine Klasse zuweisen z.B.
Delphi-Quellcode:
procedure MachWas(Dingens: TImageSprite);
sodass auch die Nachfahren angesprochen werden...
Delphi-Quellcode:
TIrgendwas = class(TImageSprite)
...
Falls ihr nicht wisst, was ich meine :gruebel:
Denn davon kanns viele geben, und ich will nicht für jede eine eigene procedure....
Danke. mfG

mkinzler 24. Aug 2009 18:11

Re: Klasse mit Nachfahren als Parameter
 
Da Kindsklassen in einer IS-A Beziehung zur Elternklasse stehen, kannst du jeder abgeleitete Klasse anstatt der Superklasse übergeben

Vasco da Gama 24. Aug 2009 18:18

Re: Klasse mit Nachfahren als Parameter
 
Naja, aber:
Delphi-Quellcode:
MachWas(Irgendwas1);
funktioniert nicht,...
Wenn ich dich richtig verstanden habe sollte es aber oder? :gruebel:

mkinzler 24. Aug 2009 18:20

Re: Klasse mit Nachfahren als Parameter
 
Eigentlich geht das :gruebel: Was für ein Fehler wird angezeigt?

himitsu 24. Aug 2009 18:20

Re: Klasse mit Nachfahren als Parameter
 
WAS funktioniert nicht? (Fehlermeldung!)

denn es sollte ja so funktionieren.

[add]
siehst du ja an der VCL, wo man z.B. statt TComponent alle dessen Nachfahren übergeben kann.

DeddyH 24. Aug 2009 18:22

Re: Klasse mit Nachfahren als Parameter
 
Zitat:

Zitat von Vasco da Gama
funktioniert nicht,..

Ich hasse diese Aussage ohne nähere Beschreibungen :wall:

Vasco da Gama 24. Aug 2009 18:27

Re: Klasse mit Nachfahren als Parameter
 
Tut mir Leid :wall: :wall: :wall: (ich hätte schwören können)
ich habe es euch wohl falsch hingeschrieben,
so geht es nicht:


Delphi-Quellcode:
MachWas(TIrgendwas);
nämlich:
Zitat:

[DCC Fehler] Unit1.pas(991): E2010 Inkompatible Typen: 'TImageSprite' und 'Class reference'

mkinzler 24. Aug 2009 18:28

Re: Klasse mit Nachfahren als Parameter
 
Ist ja auch klar, das als Parameter immer ein Objekt und keine Klasse erwartet wird.
Oben hast du eine Instanz angegeben.

DeddyH 24. Aug 2009 18:30

Re: Klasse mit Nachfahren als Parameter
 
Delphi-Quellcode:
MachWas(Blubb: TIrgendwas);
[edit] *Oops*, in der Art stand es ja bereits im Ausgangspost [/edit]


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:42 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz