Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi mehrere classhelper (https://www.delphipraxis.net/208857-mehrere-classhelper.html)

AJ_Oldendorf 22. Sep 2021 11:57

mehrere classhelper
 
Hallo zusammen,
ich habe eine Fremdkomponente, welche einen eigenen classhelper für TDateTime besitzt.
Jetzt ist mit Delphi 11 ein eigener classhelper für TDateTime mitgeliefert worden.
Die Komponente will permanent den classhelper aus System.DateUtils nehmen und da sind natürlich die Funktionen des eigenen classhelper nicht vorhanden.
Im Uses Abschnitt ist die Unit mit dem eigenen classhelper an erster Stelle. DateUtils kommt später. Hat jemand eine Idee, wie man den eigenen classhelper zwingend nutzen kann?

Der schöne Günther 22. Sep 2021 12:01

AW: mehrere classhelper
 
In eigene Unit auslagern und in der uses später einbinden.

AJ_Oldendorf 22. Sep 2021 12:03

AW: mehrere classhelper
 
Der eigene classhelper ist schon in einer eigenen Unit. Wird denn der genommen, der zuletzt gefunden wurde? Ich hätte gedacht, wer zuerst kommt...

TiGü 22. Sep 2021 12:14

AW: mehrere classhelper
 
Ja!

AJ_Oldendorf 22. Sep 2021 12:36

AW: mehrere classhelper
 
Danke, dass hat geholfen!

Der schöne Günther 22. Sep 2021 12:53

AW: mehrere classhelper
 
In Delphi hat bei der Namensauflösung immer das Vorrang was zuletzt eingebunden wurde, nicht zuerst.

himitsu 22. Sep 2021 12:58

AW: mehrere classhelper
 
Ja, es ist schon bissl schwachsinnig, dass nicht einfach nach weiteren Helper gesucht wird, oder die Helper "automatisch" gemerged werden.

Und dass es eben immer nur einen Helper geben kann (egal ob direkt an der Klasse oder an einem Vorfahren)
Somit ist immer nur das Nutzbar, was direkt als Letztes eingebunden wurde.




ABER bei den ClassHelpern (nicht beim RecordHelper ... k.A. warum nicht) kann man die Helper auch vererben und hat dann Alles verfügbar.

Zitat:

Delphi-Quellcode:
type
   identifierName = class|record helper [(ancestor list)] for TypeIdentifierName
     memberList
   end;

Delphi-Quellcode:
type
  TMyHelper = class helper (TOtherHelper) for TIrgendwas
    ...
  end;
Aber sowas geht nur für eigene Helper und geht z.B. nicht übergreifend zwischen "unbekannten" Fremdbibliotheken.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:08 Uhr.

Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf