Einzelnen Beitrag anzeigen

Benutzerbild von JamesTKirk
JamesTKirk

Registriert seit: 9. Sep 2004
Ort: München
604 Beiträge
 
FreePascal / Lazarus
 
#4

AW: Grundsätzliche Frage zu Lazarus Komponenten

  Alt 29. Dez 2010, 21:22
Ich versuch dich jetzt mal etwas (in Bezug auf Packages) aufzuklären.

Delphi unterstützt sogannte Dynamische Packages, welche im großen und ganzen DLLs mit ein bisschen Compiler Magic dahinter sind, damit du auch einfach Klassen, etc. aus so einem Package nutzen kannst. Mit einer normalen DLL hast du nämlich früher oder später ein Problem, wenn du einfach Objekte von der Anwendung zur DLL oder umgekehrt weiterreichst.

So... diese Magic basiert auch sehr darauf wie DLLs unter Windows funktionieren (es gibt da ein paar dezente Unterschiede zwischen Windows DLLs, Linux SOs und OS X Dynlibs), weshalb dies natürlich entsprechend zumindest für die wichtigsten Platformen (Windows, Linux, Max OS X) im Compiler implementiert werden muss.

Die Entwickler (hierbei geht es vor allem um die Free Pascal Entwickler) wissen zwar, dass vor allem für Lazarus solche Packages von enormen Vorteil wären, doch darfst du nicht vergessen, dass der Compiler von Leuten in ihrer Freizeit geschrieben, erweitert und gepflegt wird (mir ist zumindest kein Fulltime FPC Entwickler bekannt). Und man kann solchen Freiwilligen eben nicht vorschreiben woran sie zu arbeiten haben. Jeder pickt sich nämlich das raus, was er gern machen möchte.

Vor kurzem hat allerdings jemand Interesse angemeldet Packages in FPC zu implementieren, also vielleicht sehen wir "demnächst" mal was. (nein, nicht ich )

Noch zur RTTI: RTTI steht für RunTime Type Information und wird zum Beispiel von Lazarus und Delphi dazu verwendet den Object Inspector mit der Liste der veröffentlichten Properties einer Komponente (Stichwort "published") zu füttern und dann daraus die LFM- bzw. DFM-Datei zu erzeugen.

Neben der Konsistenz der RTTI ist bei Packages allerdings zum Beispiel auch zu beachten (aus Sicht des Implementierers), dass z. B. eine bestimmte Unit nur einmal in der gesamten Anwendung (EXE + Packages) vorkommen darf.

Ich hoffe das hat dir etwas Einblick verschafft.

Gruß,
Sven
Sven
[Free Pascal Compiler Entwickler]
this post is printed on 100% recycled electrons
  Mit Zitat antworten Zitat