![]() |
verschiedene class helper für eine Klasse
kann ich nur eine class helper Klasse für eine Basis Klasse erstellen ? meinen Code mag der Compiler irgendwie nicht ....
Delphi-Quellcode:
type
TStringClassHelper = class helper for TStrings private public end; type TStringClassHelperZusatz = class helper for TStrings private public end; |
AW: verschiedene class helper für eine Klasse
Ja, es kann immer nur einen Class Helper für je Klasse im aktuellen Scope geben.
Aber: Class Helper von Klassen sind vererbbar:
Delphi-Quellcode:
Eine andere Alternative, wenn es denn machbar ist, wären noch Class Helper für unterschiedliche Klassen:
type
TStringClassHelper = class helper for TStrings end; type TStringClassHelperZusatz = class helper(TStringClassHelper) for TStrings end;
Delphi-Quellcode:
Eine TStringList kennt dann die Methoden aus beiden Helpern.
type
TStringClassHelper = class helper for TStrings end; type TStringListClassHelper = class helper for TStringList end; |
AW: verschiedene class helper für eine Klasse
Genau, es geht blöder Weise immer nur Einer, je Typ. (ich glaub nicht, dass Emba das jemals gefixt bekommt, wenn die es nichtmal schaffen von DebugDCUs den Haken wieder zu entfernen)
[edit] Auch Helper am Vorfahren haben manchmal Probleme, aber normal geht es. Aber Class Helper kann man vererben.
Delphi-Quellcode:
, also
TMyHelper = class helper (TAndererHelper) for TIrgendwas
Delphi-Quellcode:
wie beim
classHelper(x)
Delphi-Quellcode:
class(x)
Nur bei RecordHelpern ist man angearscht, z.B. wenn man eigene Helper an string hängen will. Ebenso kann man für abgeleitete Typen keine Helper mehrfach anhängen (wiederverwenden). z.B. TCaption (.Caption an Forms, Labels, Buttons usw.) fehlen alle Helper vom String. |
AW: verschiedene class helper für eine Klasse
Zitat:
|
AW: verschiedene class helper für eine Klasse
Zitat:
Das aus TStringClassHelper sehe ich nicht, es lässt sich aber ohne Fehler übersetzen und funktioniert. |
AW: verschiedene class helper für eine Klasse
Zitat:
|
AW: verschiedene class helper für eine Klasse
Zitat:
In dem Fall sehe ich da keinen Bug, sondern eine logisch begründete technische Einschränkung. |
AW: verschiedene class helper für eine Klasse
Dann gilt die Reihenfolge der uses wie überall sonst auch, z.B. bei Klassen (ja, ich meine dich, TBitmap!) oder "globalen Methoden". Da allerdings der Class Helper keinen nach außen sichtbaren Namen hat, kann man dann leider nicht die Auswahl überschreiben, indem man die Unit angibt.
|
AW: verschiedene class helper für eine Klasse
Zitat:
Das würde uns jetzt aber auf ein anderes Gleis, weg vom eigentlichen Thema, bringen. Ich wollte nur den Negativismus gleich am jahresanfang etwas dämpfen ;-) |
AW: verschiedene class helper für eine Klasse
Zitat:
Genauso, wie Overload, bzw. Ohne. Der Helper, welcher zuletzt im Scope liegt, dessen Methode/Property hat Vorrang. (je nach Signatur) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:49 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