[gelöst] Underline: Wie lässt sich das realisieren?

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: Underline: Wie lässt sich das realisieren?

Beitrag von theo »

Erwin hat geschrieben:Also wenn ich das richtig verstehe, obwohl er also auf GTK2 eingestellt ist, nutzt er dennoch in erster Linie LCL? LCL ist, glaube ich, so etwas wie eine Art Grund-Grafik für alle Linux-Systeme, oder?


Die LCL ist die Lazarus Klassenbibliothek. Sie ermöglicht dir, dass dein Code auf allen unterstützten Systemen läuft.
Sie abstrahiert also die verschiedenen Systeme für dich.
Z.b. ein Fenster wird unter Linux anders erstellt als unter Windows. Du musst aber nicht wissen, wie das geht, Lazarus stellt dir TForm als Schnittstelle zur verfügung. Es kann aber nicht - oder nur schwer - Dinge tun, die vom System nicht unterstützt sind.
Als Belohnung gibt es aber native Anwendungen im ggs. zu Java.

Teekeks
Beiträge: 359
Registriert: Mi 27. Mai 2009, 20:54
OS, Lazarus, FPC: OpenSuse11.4 x86 (Lazarus: 0.9.30 FPC 2.4.2)
CPU-Target: x86
Wohnort: Cottbus

Re: Underline: Wie lässt sich das realisieren?

Beitrag von Teekeks »

Die LCL ist die Lazarus Component Library, also eine Schnittstelle zwischen (in deinem Fall) den befehlen von gtk2 und denen, mit welchen du z.B. einem Knopf einen Text zuweist.
Wenn du also z.B. folgendes schreibst:

Code: Alles auswählen

Label1.caption:='foo';
wird im Untergrund damit die LCL angesprochen (ein TLabel ist ein teil der LCL). Diese guckt dann welches WingetSet du eingestellt hast und gibt dann die entsprechenden Befehle an dieses weiter. Die LCL ist sozusagen ein Parser, welcher deinen Befehl in die jeweilige Sprache des eingestellten WingetSets übersetzt.

Das stimmt nicht so ganz genau, sollte aber grob Zeigen was da Passiert.
Also ist die LCL nicht nur bei Unix-Systemen Aktiv, sondern immer.

edit: da war jemand schneller, egal :)

Erwin
Beiträge: 286
Registriert: Mi 16. Sep 2009, 14:15
OS, Lazarus, FPC: Xubuntu 22.04 / x86_64_linux-gtk 2 / L 2.2.0 / FPC 3.2.2

Re: Underline: Wie lässt sich das realisieren?

Beitrag von Erwin »

Da habe ich wohl LCL mit SDL verwechselt. *aua*

Danke Euch beiden.
Langsam glaube ich, das Ganze immer besser zu verstehen. So wie normale Befehle unter dem Jeweiligen Lazarus-BS für das entsprechende BS umgesetzt wird, wird natürlich auch das LCL umgesetzt. Aber je mehr ich spezielle Befehle aus dem LCL heraus kitzle, desto größer die Wahrscheinlichkeit, bei stark unterschiedlichen BS, dass das eine oder andere auf anderem BS nicht funktioniert? Aber in der Regel wohl eher dann, wenn das BS (bzw. dessen Desktop) dies Grafisch nicht darstellen kann, oder der andere Lazarus (auf anderem BS) diesen Befehl noch nicht richtig kennt? Um das hin zu bekommen, müsste ich wohl eher schon so ein Profi sein, dass ich auch zugleich wiederum das Problem beheben könnte?
Lazarus 2.2.0 / FP 3.2.4

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: Underline: Wie lässt sich das realisieren?

Beitrag von theo »

Erwin hat geschrieben: Um das hin zu bekommen, müsste ich wohl eher schon so ein Profi sein, dass ich auch zugleich wiederum das Problem beheben könnte?


Ja. Das, wovor dich die LCL bewahrt, muss natürlich durch die Entwickler übersetzt werden.
Entwickler kannst auch du sein. Du kannst gerne Patches einsenden, um eine gewisse Funktionalität zu erreichen.
Dazu musst du allerdings die Dokumentation des jew. Systems/Widgetsets lesen und versuchen, das Angestrebte in die LCL einzubauen.
Wenn du also z.B. für das Lazarus GTK2-Interface was verbessern willst, musst du dich erst hier schlau machen
http://www.gtk.org/documentation.html

Für das Qt-Interface hier: http://doc.qt.nokia.com/4.6/index.html
Für das Win32-Interface hier: http://msdn.microsoft.com/en-us/library/aa383749.aspx

Erwin
Beiträge: 286
Registriert: Mi 16. Sep 2009, 14:15
OS, Lazarus, FPC: Xubuntu 22.04 / x86_64_linux-gtk 2 / L 2.2.0 / FPC 3.2.2

Re: Underline: Wie lässt sich das realisieren?

Beitrag von Erwin »

Wäre schön, wenn ich mal so viel verstehen würde, und auch so gut Englisch könnte, um da mit zu machen.
Insgesamt meinte ich aber etwas anderes. Ist aber eigentlich nicht so wichtig.

Antworten