Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   verschiedene class helper für eine Klasse (https://www.delphipraxis.net/209944-verschiedene-class-helper-fuer-eine-klasse.html)

bernhard_LA 10. Feb 2022 23:19

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;

Uwe Raabe 10. Feb 2022 23:41

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:
type
  TStringClassHelper = class helper for TStrings
  end;

type
  TStringClassHelperZusatz = class helper(TStringClassHelper) for TStrings
  end;
Eine andere Alternative, wenn es denn machbar ist, wären noch Class Helper für unterschiedliche Klassen:
Delphi-Quellcode:
type
  TStringClassHelper = class helper for TStrings
  end;

type
  TStringListClassHelper = class helper for TStringList
  end;
Eine TStringList kennt dann die Methoden aus beiden Helpern.

himitsu 10. Feb 2022 23:44

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:
TMyHelper = class helper (TAndererHelper) for TIrgendwas
, also
Delphi-Quellcode:
classHelper(x)
wie beim
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.

Der schöne Günther 11. Feb 2022 09:16

AW: verschiedene class helper für eine Klasse
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1501981)
Eine andere Alternative, wenn es denn machbar ist, wären noch Class Helper für unterschiedliche Klassen:
Delphi-Quellcode:
type
  TStringClassHelper = class helper for TStrings
  end;

type
  TStringListClassHelper = class helper for TStringList
  end;
Eine TStringList kennt dann die Methoden aus beiden Helpern.

Da wäre ich nie drauf gekommen. Wieder was gelernt 👍


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:07 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