![]() |
Re: Klasseneigenschaften und ihre Getter (abstrakte Klasse)
Sorry, es ist nicht "Unsinnigkeit" in deinem Wunsch nach so einem direkten Weg, sondern die "Sinnlosigkeit" liegt darin begründet das das Klassendesign der Delphi VCL sowas einfach nicht unterstützen kann. Das liegt eben an der Art&Weise wie Delphi die RTTI's zu einer Klasse speichert und später per Unit TypInfo.pas zb. im Object Inspector darauf zugreift.
Ich hatte hier im Forum in einem anderen Thread exakt dieses Problem schonmal angesprochen. Vielleicht findest du dort noch mehr Infos. Es gibt noch eine Lösung indem du einfach auf die Deklaration als abstract verzichtest. Deine Getter Methode wird dann als leerer Funktionsrumpf implementiert in dem nur eine EAbstract Exception aufgerufen wird. Gruß Hagen |
Re: Klasseneigenschaften und ihre Getter (abstrakte Klasse)
kurz zusammengefasst. Du willst eine Klassenmethode haben welche man überschreiben kann? Und das geht nicht?
Wen dem so ist dann gehts (indirekt) so:
Delphi-Quellcode:
protected
function MakeAnything(): Type; virtual; abstract; public class function MakeAnythingClass(): Type; end; [...] class funciton TYourClass.MakeAnythingClass(): Type; var lInstance: TYourClass; begin lInstance := TYourClass.Create(); try result := lInstance.MakeAnyhting(); finally lInstance.Free end; end; |
Re: Klasseneigenschaften und ihre Getter (abstrakte Klasse)
Hi,
@Hagen: ah, okay. Wenn dem so ist, werde ich mich dem wohl fügen. *g* ;) @Jens: es geht nicht direkt, richtig. Indirekt gibt es viele Wege und letztlich werde ich es so machen, wie Hagen und alzaimar vorgeschlagen haben - so geht's nämlich ziemlich einfach. :) Chris |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:29 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