Einzelnen Beitrag anzeigen

Sequitar

Registriert seit: 8. Jan 2016
74 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Dynamisches Package & Interface Typecast

  Alt 10. Mai 2016, 14:59
Erst mal Danke für die Rückmeldung.
Dazu zwei Fragen

a) wieso ist das "with... as...do" nicht brauchbar? ich dachte, das sei besser als hardcast (iexample(i) )

b)Einbindung der Interfaces in die Hauptanwendung

Nehmen wir mal an ich möchte so unterschiedlichste klassen / funktionalitäten dynamisch nachladen, die aber eigentlich nichts miteinander zu tun haben. Also haben sie auch fast keine gemeinsamkeiten für ein einziges interface in der hauptanwendung (sonst wäre das natürlich der logischste weg), sondern nur innerhalb der packages (zb ein datenbank interface /-paket, ein sprach-interface /-paket etc)

aber was ist wenn ich zum beispiel im package 1
Delphi-Quellcode:
type itest=interface
...
end;

ttest1=class (tinterfacedobject, itest)
...
end

ttest2=class(tinterfacedobject, itest)
...
end;

aber in einem anderen package andere funktionalität erwünscht ist und somit

Delphi-Quellcode:
type imachwas=interface
...
end;

tmachwas1=class (tinterfacedobject, imachwas)
...
end

tmachwas2=class(tinterfacedobject, imachwas)
...
end;

habe ich da keine möglichkeit, quasi die funktionalitäten aus den einzelenen packages anhand der interfaces zu "erkennen", ohne dass beide unbedingt in der hauptanwendung deklariert sind?

oder ist das ein genereller design fehler des systems?

Edit: Was Sinn machte wäre zb ein gemeinsames Interface, um der hauptanwendung informationen zu den einzelen Packages zu liefern. Nur wie kann ich dann am einfachsten auf die restlichen inhalte zugreifen (dynamisches laden und aufrufen von methoden mithilfe von method pointers ist mir bekannt).

Die Frage ist dann WIE kann ich der hauptanwendung mitteilen, welche parameter die methodenNAMEN in den packages verwenden? Eine liste verfügbarer methoden kann ich bereits erstellen.
Kann ich dann auch auf Properties zugreifen?

Geändert von Sequitar (10. Mai 2016 um 15:20 Uhr)
  Mit Zitat antworten Zitat