Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Sinn oder Unsinn von Class Helper (https://www.delphipraxis.net/145550-sinn-oder-unsinn-von-class-helper.html)

WoGe 4. Jan 2010 14:05

Re: Sinn oder Unsinn von Class Helper
 
@himitsu
Ich glaube das ist so nicht ganz richtig (zumindest meinem bisherigen Wissenstand nach).
Ein typisierte Konstante gehört zur Instanz in der Sie erzeugt wird.
Und damit könnte man sozusagen Instanzvariablen erzeugen.

Mein Memoryleak kommt ja nur daher, das ich weitere Datenstrukturen mittels New erzeuge und ich die Stelle wo ich die wieder freigeben kann noch nicht entdeckt habe.

Grüsse
wo

sh17 2. Sep 2010 21:48

AW: Sinn oder Unsinn von Class Helper
 
class helper kann man nicht zufällig von einem Objekt ableiten?

Habs zumindest nicht hinbekommen, wäre aber hilfreich.

mkinzler 2. Sep 2010 21:50

AW: Sinn oder Unsinn von Class Helper
 
Wie meinst du das? Ein Class Helper erweitert ja eine Klasse ohne sie abzuleiten

sh17 2. Sep 2010 21:55

AW: Sinn oder Unsinn von Class Helper
 
Delphi-Quellcode:
TMeineKlasse = class(TDieKlasse)
end;

TMeineKlasseHelper = class(TAndereKlasse) helper for TMeineKlasse
end;
Quasi so, sozusagen indirekte Mehrfachvererbung.

//Edit:

Mach es grad über verschachtelte Klassen, Helper wäre aber eleganter gewesen.

mkinzler 2. Sep 2010 22:07

AW: Sinn oder Unsinn von Class Helper
 
Delphi unterstützt, wie auch Java und c# aus guten Grund keine Megrfachvererbung. Zudem sind class helper kein vollständiger Ersatz für Ableitung, da man durch sie nur erweitern kann aber nicht Überladen oder Überschreiben.

stahli 29. Sep 2010 19:36

AW: Sinn oder Unsinn von Class Helper
 
Ein sehr interessantes Video zu "class helper".

Werde ich mal testen, ob sich mein aktuelles Problem damit erschlagen lässt.
Ich habe allerdings auch von Compilerproblemen gelesen - dass es also praktisch (in größerem Umfang) nicht wirklich einsetzbar ist (oder früher war).


Zu meinem Hintergrund:

Ich habe in einer Basisunit Datenklassen, die anhand einer festgelgten Struktur komplett durch einen "Experten" erstellt werden und sich gegenseitig referenzieren können. Ist ja kein Problem, solange alle in einer Unit stehen.
In meinem "richtigen" Projekt will ich jedoch zusätzliche Methoden nutzen, die entsprechend Daten lesen und ändern und auch andere Instanzen suchen und verwenden. Da die Instanzen aus den Basisklassen erzeugt werden müsste ich immer mit Typecasts arbeiten wenn ich die neuen Methoden in Kindklassen einführe.

Im Moment erzeuge ich die Instanzen daher erst von den Kind-Klassen, das kann nach Änderungen der Datenstrukturen jedoch dann nicht mehr durch den Experten automatisch erfolgen. Außerdem wäre es einfach übersichtlicher, wenn diese Sachen direkt in den Basisklassen erfolgen könnten.

In den Helperklassen sehe ich nun einen potentiellen Ausweg und werde das mal versuchen - wobei mir ein Multipass-Compiler im Delphi auf jeden fall deutlich lieber wäre.

DualCoreCpu 31. Mai 2016 20:27

AW: Sinn oder Unsinn von Class Helper
 
Ich experimentiere gerade mit fclimage aus Freepascal rum. Will dort 2 Methoden aus TfpCustomcanvas überschreiben, die dort protected und virtual abstract deklariert sind.

Da ich zeichnen will, habe ich die TfpPixelcanvas Klasse ausgewählt. FPC sagt mir nun aber, daß es keine Methoden dieses Namens in der Ursprungsklasse gebe. Bei TfpPixelcanvas trifft das auch zu, diese Klasse ist aber von TfpCustomCanvas abgeleitet. Dort aber befinden sich die Methoden, die ich überschreiben will. Ich habe hinter der überschriebenen Methode die override Direktive gesetzt und verstehe jetzt nicht, was daran falsch ist.

Ich stelle die Frage hier, weil ich hoffe, mittels Helper Klassen, die es in FPC 3.0.0 auch gibt, eine Lösung zu finden. Kann ich damit auf die Protected Methoden zugreifen. Oder sollte ich eine andere Canvas Klasse nach dem Vorbild von TFPpixelCanvas ableiten.

Ich wollte eigentlich die fpPixelCanvas Klasse verwenden und die fehlenden Methoden, die in FPCustomcanvas abstract deklariert sind, in meiner Klasse ableiten, da alle Zeichenmethoden in TfpPixelcanvas bereits implementiert sind. Nun tritt aber das beschriebene Problem auf.


Ist das vielleicht ein Fall für die Helper Klassen???


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:24 Uhr.
Seite 2 von 2     12   

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