Hallo zusammen,
mangels besserer Bezeichnung nenne ich das was ich möchte mal "
Unit forwarding",
und zwar aus einem Base-
Unit die Klassen in ein Interface-
Unit übernehmen und re-deklarieren.
So das nur noch das Interface-
Unit in der Anwendung benutzt werden muss.
Base-
Unit
Delphi-Quellcode:
interface Pages.Types;
type
TPage_Elem = (Eins, Zwei); // Hier werden diese Klassen etc. definiert
TPage_Elem_Helper = record helper for TPage_Elem; // Hier kann es Helper geben
procedure DoDomething;
end;
...
...
Interface-
Unit
Delphi-Quellcode:
interface Pages;
Uses
Pages.Types // Hier sind Klassen, Records, Enums, etc. definiert, s.o.
;
type
TPage_Elem = Pages.Types.TPage_Elem; // Hier werden diese Klassen etc. ge-forwared
TPage_Elem_Helper = Pages.Types.TPage_Elem_Helper; // das möchte ich auch mit Helpern so machen
und dann nur per Interface nutzen, während die Implementation in den Base-Units bleibt.
Delphi-Quellcode:
interface Main_Unit;
Uses
Pages; // die Typen aus den Base-Units werden hier ge-forwarded und sind direkt nutzbar
...
...
procedure Test;
begin
LElem := TPage_Elem.Eins; // Alles OK, kann ich benutzen mit Klassen, Records, Enums ...
LElem.DoSomething // <-- ! Hier kann es nicht kompiliert werden, die Base-Units werden benötigt
end;
Gibt es da einen Trick wie man auch die Helper aus den Base-Units "forwarden" kann ?
Oder ist sowas etwa ein schlechter Stil ?
Rollo