![]() |
Re: Wie Greife ich auf Methode der Vor vor gänger klasse zu
dh. das dein Vorschlag
Delphi-Quellcode:
nicht mit virtuellen noch dynamischen Methoden funktioniert. Unabhängig von der Klasse nach der man castet wird denoch die Ontop Methode aufgerufen.
(self as <Klasse>).<Methode>
Zitat:
Gruß Hagen |
Re: Wie Greife ich auf Methode der Vor vor gänger klasse zu
Zitat:
Dann erben B und C von D. B überschreibt das Feature, C nicht. |
Re: Wie Greife ich auf Methode der Vor vor gänger klasse zu
Ich selbst ging ja davon aus das es nicht geht.
Also ich habe mal Folgendes Gekodet :
Delphi-Quellcode:
Was passiert wenn ich auf den Button drücke ist ein Stack overflow => es geht nicht.
Unit Unit1;
Interface Uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; Type TForm1 = Class(TForm) Button1: TButton; Procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } End; a = Class Procedure d; End; b = Class(a) Procedure d; End; c = Class(b) Procedure d; End; Var Form1: TForm1; Implementation {$R *.DFM} Procedure a.d; Begin showmessage('a'); End; Procedure b.d; Begin showmessage('b'); End; Procedure c.d; Begin (self As a).d; End; Procedure TForm1.Button1Click(Sender: TObject); Var z: c; Begin z := c.create; z.d; z.free; End; End. |
Re: Wie Greife ich auf Methode der Vor vor gänger klasse zu
Hmm, du wolltest die Methoden auch wirklich verstecken bzw. reimplementieren anstatt zu überschreiben?
|
Re: Wie Greife ich auf Methode der Vor vor gänger klasse zu
Ups
Delphi-Quellcode:
war eigentlich so gemeint.
a = Class
Procedure d; virtual; End; b = Class(a) Procedure d; override; End; c = Class(b) Procedure d; override; End; Der effeckt bleibt aber der selbe. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz