Einzelnen Beitrag anzeigen

DualCoreCpu
(Gast)

n/a Beiträge
 
#6

AW: Beliebige Klasse instanzieren

  Alt 28. Okt 2015, 22:08
@Uwe Raabe: Ich frage da mal, ab welcher Delphi Version das mit dem Typecast von TObject auch Interface überhaupt klappt.

Der TE weiß nicht was Du überhaupt gemeint hast, laut Angabe in seinem Beitrag hat er Delphi 5. Wenn der Typecast wirklich erst ab Delphi XE klappt, kann der TE das Feature mit dem Typecast nicht nutzen mit Delphi 5. Auch ich nicht ich habe Delphi 7 und Turbo Delphi (2006).

Mich interessiert die Frage aber auch weil ich demnächst eine Freepascal Klassensammlung nach Delphi portieren will. Da will ich mir die frustrierende Schritt für Schritt Übersetzung mit Delphi und dioe aufwendige Quellcodeanpassung sparen und auch auf Interfaces setzen, die dann dieselben öffentlichen Mthoden haben wie die Fpc Klassen.

Da ergibt sich aber die zweite Frage. Normalerweise sind die Getter und Setter in den Klassen private. Im Interface müssen die aber public sein, wie die Eigenschaften (properties) die von den Gettern und Settern gelesen und geschrieben werden. Gibt es da einen Workaround, der mir erspart, die Getter und Setter in den Fpc Klassen alle public zu setzen?

Ich versteh die Frage von @amoibos so das er Klassen hat, die er per Interface ansprechen will. So wie ich, der ich Klassen aus Freepascal auch in Delphi nutzen will, mir aber gerne die aufwendige Quellcodeanpassung ersparen will, stattdessen will ich eine DLL bauen, in der die Klassendefinition, direkt oder als eingebundene Unit mit der Klasse und das zugehörige Interface steht. Auf der Delphi Seite hab ich dann nur das Interface. Die Implementation der Klasse befindet sich in der Dll. Nun will die Klasse in Delphi verwenden. In genau diesem Sinne versthe ich auch @amoibos Frage. Nun muss ja dem Interface mitgeteilt werden, auf welche Klassenimplementierung sich das Interface beziehen soll. Ich will dann das Interface anstelle der Klasse nutzen und das genauso, als ob ich die Fpc Klasse portiert hätte. Tprocess aus Lazarus ist so eine überaus sinnvolle Komponente, wenn ich von meiner Anwendung aus ein externes Programm aufrufen will. Es gibt noch einige andere, die es für Delphi so nicht gibt.

Geändert von DualCoreCpu (28. Okt 2015 um 22:18 Uhr)
  Mit Zitat antworten Zitat