AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Mehrere Class helper für eine Basisklasse

Ein Thema von Rollo62 · begonnen am 26. Jan 2017 · letzter Beitrag vom 26. Jan 2017
Antwort Antwort
Rollo62
Online

Registriert seit: 15. Mär 2007
4.093 Beiträge
 
Delphi 12 Athens
 
#1

Mehrere Class helper für eine Basisklasse

  Alt 26. Jan 2017, 09:16
Hallo zusammen,

ich frage mich wie man mehrere class helper verwalten könnte.

Als Beispiel:

in UnitAbc.pas:

Delphi-Quellcode:
type
  TBaseClassAbc_Helper = class helper for TBaseClass // Edit: class helper
    Procedure DoAbc;
  end;
in UnitXyz.pas:

Delphi-Quellcode:
type
  TBaseClassXyz_Helper = class helper for TBaseClass // Edit: class helper
    Procedure DoXyz;
  end;

und in der Anwendung;

Delphi-Quellcode:
uses
    UnitBaseClass, UnitAbc, UnitXyz;


procedure Use;
var
  LBase : TBaseClass;
begin
   
   LBase.DoAbc; // Das geht so wohl nicht, weil nur ein class helper aktiv ist
   LBase.DoXyz;

   TBaseClassAbc_Helper(LBase).DoAbc; // Oder könnte man das mit Namespaces iregendwie casten ?
   TBaseClassXyz_Helper(LBase).DoXyz;

end;
Gäbe es irgendeine "offizielle" Methode dafür, oder geht soetwas gar nicht ?

Rollo

Geändert von Rollo62 (26. Jan 2017 um 09:34 Uhr)
  Mit Zitat antworten Zitat
Der schöne Günther
Online

Registriert seit: 6. Mär 2013
6.159 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Mehrere Class helper für eine Basisklasse

  Alt 26. Jan 2017, 09:22
Das geht in Delphi leider nicht.

Ein class helper for ... kann immerhin von einem anderen erben und seine Methoden übernehmen. Komischerweise kann ein record helper for ... aber nicht von einem Record-Helper erben.
  Mit Zitat antworten Zitat
Rollo62
Online

Registriert seit: 15. Mär 2007
4.093 Beiträge
 
Delphi 12 Athens
 
#3

AW: Mehrere Class helper für eine Basisklasse

  Alt 26. Jan 2017, 09:37
Hallo Günther,

dankesehr für den Tipp, das ist ja immerhin etwas.

Also in der Art:
Delphi-Quellcode:
type
  TBaseClassXyz_Helper = class helper for TBaseClassAbc_Helper
    Procedure DoXyz;
  end;
So sollte das also funktionieren, muss ich mal checken.


Rollo
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#4

AW: Mehrere Class helper für eine Basisklasse

  Alt 26. Jan 2017, 09:44

Also in der Art:
Delphi-Quellcode:
type
  TBaseClassXyz_Helper = class helper for TBaseClassAbc_Helper
    Procedure DoXyz;
  end;
Nein, so nicht! Aber so (wenn TBaseClass wirklich eine class ist):

Delphi-Quellcode:
type
  TBaseClass = class
    ABC: Integer;
    XYZ: Integer;
  end;

  TBaseClassAbc_Helper = class helper for TBaseClass
    Procedure DoAbc;
  end;

  TBaseClassXyz_Helper = class helper(TBaseClassAbc_Helper) for TBaseClass
    Procedure DoXyz;
  end;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Rollo62
Online

Registriert seit: 15. Mär 2007
4.093 Beiträge
 
Delphi 12 Athens
 
#5

AW: Mehrere Class helper für eine Basisklasse

  Alt 26. Jan 2017, 09:52
Hallo Uwe,

vielen Dank, sieht komisch aus, ist aber so

Rollo
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:44 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