Neue GUI - Prototypen entwickeln

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Hitman
Beiträge: 512
Registriert: Mo 25. Aug 2008, 18:17
OS, Lazarus, FPC: ArchLinux x86, WinVista x86-64, Lazarus 0.9.29, FPC 2.4.1
CPU-Target: x86
Wohnort: Chemnitz

Re: Neue GUI - Prototypen entwickeln

Beitrag von Hitman »

pluto hat geschrieben:Ich denke, dass viel inzwischen schon OpenOffice nutzten und die das nicht nutzen würden haben dann halt Pech gehabt. Weil OpenOffice kann glaube ich so gut wie Jeder Installiert haben. Evlt. gibt es ja auch nur eine Entwickler Version von OpenOffice so das man nur ein paar DLL'S mit geben muss.
Es wird daran gearbeitet, es ein wenig zu abstrahieren. Ich glaube eine Headless Installation ist mit OOo3 bereits möglich. Aber auch dann ist es immernoch einiges über hundert MB groß. (abgesehen davon, dass der Headless Modus auf Client Maschinen eh keinen Sinn macht)

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Neue GUI - Prototypen entwickeln

Beitrag von pluto »

So, ich habe mich jetzt entschieden erstmal auf TCustomControl aufzubauen. Alle mein Komponenten werden darauf aufbauen und über erweiterte Eigenschaften. Ich Plane erstmal keine Kompatibilität zu Delphi. Es ist erstmal nur ein grober Versuch ein Prototyp.

Ich habe mir verschiedene Ziel gesetzt. FPGUI werde ich mir trotzdem noch mal anschauen.

Wenn ich von TCustomControl ableitet sind es zwar neue Komponente, setzten aber voraus das der User ein Toolkit nutzten kann was es schon gibt.
Die Eigenschaften währen folgende:
01 - Rand
Alle Komponenten sollen über einen Rand verfügen können, der auf unterschiedliche art und weise gestaltet werden kann. Z.B. ein Farbverlauf oder die Linke seite wird Grün, die Rechte Seite rot. Außerdem soll der Rand über verschiedene Transparente Eigenschaften verfügen. Im Rand enthalten wird dann auch der Caption sein. Ein Titel für diese Komponente. Der kann aus oder eingeschaltet werden. Je nach bedarf. Der Rand soll auch über eine Grafik Datei geladen werden können.

02 - Fläche
Die Fläche soll über vergleichbare Eigenschaften Verfügungen: Transparents, Grafik, Farbverlauf

03 - Skinbar
Diesmal plane ich es von Anfang an einen Skin Funktion einzubauen. D.H. Das Komplette aussehen soll über eine Externe Datei gesteuert werden können. In Dieser Datei soll einmal ein Archiv mit mehren Skin vorlagen gespeichert werden können und einmal die Skins einzeln.
Alles was zu einem Skin dazu gehört kommt in ein Archiv.
Da ich kein eigenen Archiver schreiben möchte, verwende ich das ZIP Format. Ich denke hierzu gibt es genügend fertige Klassen die ich verwenden könnte unter Lazarus

04 - Tastenmanger
Jede Komponente soll man eine oder mehrer Tasten zuordnen können. Die Konfiguration soll in einer externen Datei abgespeichert werden.

05 - Mehrsprachigkeit
Ich glaube hier könnte ich das verwenden, was Lazarus auch verwendet oder ? genau weiß ich das nicht, was eigenes wollte ich nicht machen.

06 - Geplante Komponenten
Dazu zählen bei mir folgende:
00. Baes Klasse
00.A. SkinManger
00.B. ImageListe
01. Label
02. Image
03. Bevel
04. Shape
05. Edit
06. Memo
07. Panel
08. ScrollPanel(Scrollbars)
09. Buttons(RadioButton, Checkbutton, Button)
10. Listbox(TreeView, ListView, ComboBox...)
11. Prozessbar, Trakbar
12. Toolbar
13. Statusleiste
14. PopupMenu
15. MainMenu
In dieser reinfolge.

07 - Mehrstufiges Umsetzten
Erstmal sollen nur die Grundeigenschaften der jeweiligen Komponente Funktionieren und das zusammen Spiel mit dem Skinmanger
Im zweiten Schritt werden die Komponenten nach und nach nach Reifen. So die Hoffnung.

Bin mal gespannt wie weit ich diesmal komme, aber ich glaube diese GUI macht mehr sinn als meine vorherige. Denn diesmal baue ich auf TCustomControl auf und diese Komponenten könnten später nebenbei Installiert sein und getrennt/gemischt verwendet werden. Es währe kein Neues Interface. Könnte man aber bestimmt noch später ändern. Wenn das Komponenten Set alles hat was Lazarus so braucht.
Es wird daran gearbeitet, es ein wenig zu abstrahieren
Das währe toll wenn die damit Fertig werden. Es währe eine tolle sache. Oder kennt jemand vergleichbare Projekte die man in Lazarus einbauen könnte ?
MFG
Michael Springwald

Targion
Beiträge: 688
Registriert: Mi 3. Okt 2007, 21:00
OS, Lazarus, FPC: Linux (L 0.9.29 FPC 2.4.2)
CPU-Target: x86_64

Re: Neue GUI - Prototypen entwickeln

Beitrag von Targion »

pluto hat geschrieben:
Rendern macht doch der Browser
Und in welcher Sprache sind die Browser geschrieben, oder in welcher Sprache ist Java geschrieben ? bzw. gibt es eine Anbindung an Lazarus ?
Firefox nutzt seine eigene Engine, namens Gecko
Dann könnten wir ja versuchen auf Gecko auf zu setzten. Wenn das machbar ist und keine Liezen Probleme gibt.
Setze auf WebKit! Diese Engine kann man auch ohne Firefox einbinden, sie ist auf fast jeder Plattform verfügbar und außerdem sollte es mit den Lizenzen kein Problem geben.
Hitman hat geschrieben:
pluto hat geschrieben:Ich denke, dass viel inzwischen schon OpenOffice nutzten und die das nicht nutzen würden haben dann halt Pech gehabt. Weil OpenOffice kann glaube ich so gut wie Jeder Installiert haben. Evlt. gibt es ja auch nur eine Entwickler Version von OpenOffice so das man nur ein paar DLL'S mit geben muss.
Es wird daran gearbeitet, es ein wenig zu abstrahieren. Ich glaube eine Headless Installation ist mit OOo3 bereits möglich. Aber auch dann ist es immernoch einiges über hundert MB groß. (abgesehen davon, dass der Headless Modus auf Client Maschinen eh keinen Sinn macht)
Stimmt, es gibt OpenOffice Headless, aber das ist glaube ich 80 MB groß.

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Neue GUI - Prototypen entwickeln

Beitrag von mschnell »

Hitman hat geschrieben:Und wofür glaubst du, ist eine Komponente, die sich "TWebBrowser" nennt?
Das ist eine in den Pascal-Code eingebetteter Browser. Also die Client-Seite.

Bei meinem Vorschlag geht es aber um eine "Web-Gui" das ist die Server-Seite (CGI-Programm). Die GUI des Programms wird mit einem einem normalen Web-Server viea HTTP remote bedient.

Die beiden Sachen haben einfach nichts miteinander zu tun.

-Michael
Zuletzt geändert von mschnell am Do 11. Dez 2008, 14:50, insgesamt 1-mal geändert.

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Neue GUI - Prototypen entwickeln

Beitrag von mschnell »

pluto hat geschrieben:
Rendern macht doch der Browser
Und in welcher Sprache sind die Browser geschrieben, oder in welcher Sprache ist Java geschrieben ? bzw. gibt es eine Anbindung an Lazarus ?
Du hast meinen Vorschlag völlig anders interpretiert als ich es gemeint habe. Eine Web-GUI benutzt einen beliebigen Browser via HTTP zur Darstellung der Programm-Oberfläche. Die Pascal-Library ("WEB-LCL") erzeugt also HTML-Strings, die dann via Webserver an den Webserver übergeben werden, der sie via HTTP an den Browser beim Cleient schickt.

Selbst "Rendern" müsste man nur in der Design-Phase, um Visual-mäßig HTML-Controls auf der Oberfläche platzieren zu können. Das wäre dann eine Art HTML-Editor (da sind wir übrigens momentan auch d'ran).

-Michael

Antworten