Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Lazarus (IDE) (https://www.delphipraxis.net/81-lazarus-ide/)
-   -   Grundsätzliche Frage zu Lazarus Komponenten (https://www.delphipraxis.net/157046-grundsaetzliche-frage-zu-lazarus-komponenten.html)

QuickAndDirty 26. Dez 2010 19:04

Grundsätzliche Frage zu Lazarus Komponenten
 
Hallo ich bin ein noob was Lazarus angeht...und bevor es jemand in den falschen Hals bekommt...ich finde es klasse was Lazarus und Freepascal so drauf haben und was da im Internet so entstanden ist. Nur eine Sache hat mich jedesmal gestört, wenn ich versucht war auf Lazarus zu wechseln.

Da der Umfang der Komponenten Bilbliothek von Lazarus "ab Werk" sooo gar nicht umfangreich ist ist man ja darauf angewiesen Komponenten nachträglich einzufügen...finde ich ok.
Aber warum muss ich dafür die IDE jedes mal neukompilieren? Das ist in sofern Kritik meiner seits, weil ich das schon mehrmals nicht hinbekommen habe und dann lieber neuinstalliert habe, weil ich die Fehler nicht mehr hinbekam. Das Ausprobieren von Komponenten wird ja so recht schwer. Andererseits interessiert es mich wirklich wieso man das nicht anders gelöst hat. Hat einer eine Idee?

igel457 27. Dez 2010 12:42

AW: Grundsätzliche Frage zu Lazarus Komponenten
 
Der Freepascal-Kompiler unterstützt einfach noch keine Packages, mit denen Objekte zur Laufzeit (zum RTTI-System) hinzugefügt werden können.

QuickAndDirty 28. Dez 2010 09:12

AW: Grundsätzliche Frage zu Lazarus Komponenten
 
ok,
-Ist das RTTI System ein System übergreifender Standard?
-Gibt es ein RTTI System nur unter Windows?
-Hat Lazarus oder Delphi sein eigenes RTTI System?

Gibt es überhaupt Leute in der FPC Community die wissen wie umständlich das zurzeit für die IDE ist?

Ich habe so das Gefühl das es da nicht viele Überschneidungen gibt zwischen der Lazarus und der FPC Community...täusche ich mich da?

Gibt es ein laufendes Unterprojekt für packages in FPC?

JamesTKirk 29. Dez 2010 21:22

AW: Grundsätzliche Frage zu Lazarus Komponenten
 
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. :mrgreen: (nein, nicht ich :P )

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

QuickAndDirty 31. Dez 2010 07:31

AW: Grundsätzliche Frage zu Lazarus Komponenten
 
Also ich weiß durchaus grundsätzlich was Delphi packages machen und das es DLLs sind die beim Laden irgendwie ihre RTTI informationen in die anwendnung integrieren während normale DLLs ja ihre RTTIs ganz alleine verwalten.

Mich wundert eben nur das von den compiler menschen alles mögliche gehackt wird (Windowsce unterstützung für arm etc..) aber nicht sowas.

mjustin 31. Dez 2010 11:42

AW: Grundsätzliche Frage zu Lazarus Komponenten
 
Dass man Komponenten überhaupt umständlich in der IDE 'installieren' muss, kann man umgehen indem sie dynamisch (zur Laufzeit) erstellt werden. Das geht auch in Lazarus, und auch bei visuellen Komponenten. Sie sind dann zwar nicht so schön im Designmodus sichtbar, aber für Tests ist es auf jeden Fall ausreichend. So kann man auch problemlos ständig neue Versionen von Lazarus oder FPC mit diesen Komponenten testen - ohne zusätzliches Neukompilieren. Auch in Delphi gehe ich bei der Entwicklung wo immer es geht dazu über, Komponenten im Code zu erzeugen und zu konfigurieren / verdrahten. Spart auch eine Menge Boilerplatecode (wie Notification / RemoveFreeNotification).

QuickAndDirty 1. Jan 2011 10:50

AW: Grundsätzliche Frage zu Lazarus Komponenten
 
Also mich stört weniger der gute alte Boilerplate code (da weiß ich wenigstens immer gleich wo ich bin). Aber es stimmt ich kann zum durchtesten der Komponenten auch erstmal auf eine Einbindung in die IDE verzichten. Irgenwie habe ich daran garnicht gedacht.

Aber es ist auch schön so im ObjectInspector die Events und Eigenschaften durch zu probieren...

JamesTKirk 2. Jan 2011 11:35

AW: Grundsätzliche Frage zu Lazarus Komponenten
 
Zitat:

Zitat von QuickAndDirty (Beitrag 1071369)
Mich wundert eben nur das von den compiler menschen alles mögliche gehackt wird (Windowsce unterstützung für arm etc..) aber nicht sowas.

Das ist eben der Punkt an einem Open Source Projekt wie Free Pascal: Jeder arbeitet - wenn er denn überhaupt selbst was reinsteckt - an Dingen, die einen selbst interessiern.

Ich selbst habe zum Beispiel den Compiler darum erweitert Code für reine Windows NT Kernel zu schreiben (ohne Win32), was es letztendlich auch ermöglicht Treiber zu schreiben (auch wenn der Teil noch nicht ausgereift ist :mrgreen: ). Mein nächstes Projekt ist es "class helpers" zu implementieren (der erste Proof of Concept code funktioniert bereits, jetzt muss ich noch die restlichen Inkompatibilitäten zu Delphi ausmerzen ^^).

Dynamische Packages waren einfach bisher niemanden wichtig genug, so dass er oder sie sich selbst hinsetzt und es implementiert (die Thematik ist eben nicht so einfach, wie man glaubt). Allerdings hat sich vor ein paar Monaten wie gesagt jemand gefunden, dem es wichtig genug ist. Vielleicht sehen wir im neuen Jahr dann Fortschritte. ;)

Gruß,
Sven

QuickAndDirty 2. Jan 2011 19:21

AW: Grundsätzliche Frage zu Lazarus Komponenten
 
Wo finde ich denn konkretes zu der von dir angedeuteten Existenz eines Projektes das dynamische Laufzeit-Packages unter Delphi verfügbar macht?

Ich nehme an der FPC ist in c oder c++ geschrieben?

JamesTKirk 3. Jan 2011 12:31

AW: Grundsätzliche Frage zu Lazarus Komponenten
 
Zitat:

Zitat von QuickAndDirty (Beitrag 1071835)
Wo finde ich denn konkretes zu der von dir angedeuteten Existenz eines Projektes das dynamische Laufzeit-Packages unter Delphi verfügbar macht?

Das was etwas konkreten am nächsten kommt ist diese E-Mail des von mir besagten Interessenten.

Zitat:

Zitat von QuickAndDirty
Ich nehme an der FPC ist in c oder c++ geschrieben?

Aber nein. FPC besteht aus 100% Object Pascal code. :mrgreen:

Die erste Version wurde damals (~1993) mit Turbo Pascal geschrieben und irgendwann war der Compiler dann in der Lage sich selbst zu kompilieren. Seit dem wird Free Pascal nur noch mit Free Pascal entwickelt. :D

Gruß,
Sven

QuickAndDirty 4. Jan 2011 18:01

AW: Grundsätzliche Frage zu Lazarus Komponenten
 
Zitat:

Zitat von JamesTKirk (Beitrag 1071971)
Zitat:

Zitat von QuickAndDirty (Beitrag 1071835)
Wo finde ich denn konkretes zu der von dir angedeuteten Existenz eines Projektes das dynamische Laufzeit-Packages unter Delphi verfügbar macht?

Das was etwas konkreten am nächsten kommt ist diese E-Mail des von mir besagten Interessenten.

Wow, ein grober Umriss des Ganzen mit Meilensteinen...nicht schlecht...könnte er glatt ernst meinen.
Ich freue mich jetzt schon auf die scheiß "Package jonglierereien" wie wir sie in Delphi haben... ;) kommt ja dann immer automatisch dazu....


Würde das auch dazu führen das die Exen für Hallo Welt Progamme mit LCL nicht mehr so gigantisch groß währen?

Zitat:

Zitat von JamesTKirk (Beitrag 1071971)
Zitat:

Zitat von QuickAndDirty
Ich nehme an der FPC ist in c oder c++ geschrieben?

Aber nein. FPC besteht aus 100% Object Pascal code. :mrgreen:

Die erste Version wurde damals (~1993) mit Turbo Pascal geschrieben und irgendwann war der Compiler dann in der Lage sich selbst zu kompilieren. Seit dem wird Free Pascal nur noch mit Free Pascal entwickelt. :D

Big Win !

Pascal rules.

Nicht schlecht:
Es gibt nen Object-Pascal Compiler in Object-Pascal!
Auf allen Betriebssystem die Sinn machen und einigen die weniger Sinn machen...!
Es gibt nen Pascal-Skript Interpreter in Object-Pascal!

Gibt es sowas wie ein Framework für Managed-Object-Pascal-Code in Object-Pascal?
Oder so was wie das GWT für Java....nur eben für Pascal wo Pascal code in Javascriptcode "kompiliert" wird?

JamesTKirk 6. Jan 2011 11:27

AW: Grundsätzliche Frage zu Lazarus Komponenten
 
Zitat:

Zitat von QuickAndDirty (Beitrag 1072226)
Zitat:

Zitat von JamesTKirk (Beitrag 1071971)
Zitat:

Zitat von QuickAndDirty (Beitrag 1071835)
Wo finde ich denn konkretes zu der von dir angedeuteten Existenz eines Projektes das dynamische Laufzeit-Packages unter Delphi verfügbar macht?

Das was etwas konkreten am nächsten kommt ist diese E-Mail des von mir besagten Interessenten.

Wow, ein grober Umriss des Ganzen mit Meilensteinen...nicht schlecht...könnte er glatt ernst meinen.
Ich freue mich jetzt schon auf die scheiß "Package jonglierereien" wie wir sie in Delphi haben... ;) kommt ja dann immer automatisch dazu....

Da bin ich mir auch noch nicht sicher, wie ich dazu steh ^^

Zitat:

Zitat von QuickAndDirty
Würde das auch dazu führen das die Exen für Hallo Welt Progamme mit LCL nicht mehr so gigantisch groß währen?

Würde es, ja.

Aber hast du schonmal das Erstellen der Debuginfos (Projekt->Projekteinstellungen (früher Compilereinstellungen)->Linken) ausgeschalten? Oder alternativ "Externe Datei mit gdb-Debugsymbolen nutzen" aktiviert? Im ersten Fall nützt dir der Debugger nichts mehr, aber die Exe ist (vor allem mit LCL) um vieles kleiner, und im zweiten Fall kannst du (wenn ich mich richtig erinnere) noch immer debuggen. Das Aktivieren von SmartLinking (einmal bei Codegenerierung->Smartlinkbar und einmal bei Linken->Smartlinken) bringt übrigens auch noch n bisschen was.

Zitat:

Zitat von QuickAndDirty
Zitat:

Zitat von JamesTKirk (Beitrag 1071971)
Zitat:

Zitat von QuickAndDirty
Ich nehme an der FPC ist in c oder c++ geschrieben?

Aber nein. FPC besteht aus 100% Object Pascal code. :mrgreen:

Die erste Version wurde damals (~1993) mit Turbo Pascal geschrieben und irgendwann war der Compiler dann in der Lage sich selbst zu kompilieren. Seit dem wird Free Pascal nur noch mit Free Pascal entwickelt. :D

Big Win !

Pascal rules.

Nicht schlecht:
Es gibt nen Object-Pascal Compiler in Object-Pascal!
Auf allen Betriebssystem die Sinn machen und einigen die weniger Sinn machen...!

Delphi ist auch in Delphi geschrieben... (wenn es auch nicht Open Source ist ^^ )

Zitat:

Zitat von QuickAndDirty
Es gibt nen Pascal-Skript Interpreter in Object-Pascal!

Da gibt es nicht nur einen... auf Anhieb fallen mir da PascalScript von RemObjects und DelphiWebScript 2 ein.

Zitat:

Zitat von QuickAndDirty
Gibt es sowas wie ein Framework für Managed-Object-Pascal-Code in Object-Pascal?
Oder so was wie das GWT für Java....nur eben für Pascal wo Pascal code in Javascriptcode "kompiliert" wird?

Es gibt da was, das MidletPascal genannt wird und mittlerweile Open Source ist. Allerdings ist das bisher nur für die mobile Varianten von Java geeignet.

Gruß,
Sven

mkinzler 6. Jan 2011 11:29

AW: Grundsätzliche Frage zu Lazarus Komponenten
 
Object-Pascal ist ja kein Compiler sondern eine "Pseudo"-Standard. Den es gibt ja keinen Standrad, der bestimmte Bedingungen festlegt.

QuickAndDirty 6. Jan 2011 12:57

AW: Grundsätzliche Frage zu Lazarus Komponenten
 
Zitat:

Zitat von JamesTKirk (Beitrag 1072584)
Zitat:

Zitat von QuickAndDirty
Gibt es sowas wie ein Framework für Managed-Object-Pascal-Code in Object-Pascal?
Oder so was wie das GWT für Java....nur eben für Pascal wo Pascal code in Javascriptcode "kompiliert" wird?

Es gibt da was, das MidletPascal genannt wird und mittlerweile Open Source ist. Allerdings ist das bisher nur für die mobile Varianten von Java geeignet.

Gruß,
Sven

MidletPascal...arghh...die info hätte ich eher gebraucht...jetzt haben wir uns mit Java/Midp arrangiert.

Es gibt wohl so eine Art GWT für in Object-Pascal von Morfik...das "Kompiliert" dann Objectpascal in Javascriptcode,Dhtml,css...ist eben um Ajax Anwednungen in Pascal zu erstellen mit kompletter IDE...aber vermutlich rein komerziell...aber das Tool scheint gut zu sein...so Teuer wie Emba wird es nicht sein denke ich mal...

bin auf Jedenfall erstmal ganz zuversichtlich das ich privat auf Embarcadero verzichten kann.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:54 Uhr.

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