Multiplattform Ressourcen leicht abwandeln?

Rund um die LCL und andere Komponenten
Antworten
Martin V
Beiträge: 142
Registriert: Sa 30. Jan 2010, 19:35
OS, Lazarus, FPC: Linux64, Wiindows32, MacOS, Lazarus 1.8.2
CPU-Target: xxBit

Multiplattform Ressourcen leicht abwandeln?

Beitrag von Martin V »

Hallo,

ich entwickle eine Anwendung mit Lazarus, die auf Windows, Linux und Mac laufen soll. Optisch gibt es schon kleinere Abweichungen, was die Formulare betrifft. So passen konvertierte Schriften manchmal nicht wirklich, ragen über einen Rand heraus, werden umgebrochen, oder nicht umgebrochen usw. Im Programmcode kann man ja jederzeit mit {$ifdef Windows} bzw. Linux bzw. Darwin usw. plattformspezifischen Code schreiben, aber wie geht das im Designer bzw. in der lfm-Textdatei?

Scotty
Beiträge: 768
Registriert: Mo 4. Mai 2009, 13:24
OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
CPU-Target: x86_64-linux-qt/gtk2
Kontaktdaten:

Re: Multiplattform Ressourcen leicht abwandeln?

Beitrag von Scotty »

IMHO gar nicht. Eine allgemein gültige Lösung wird es sicher nicht geben können, weil auch unter Windows Themes mit z.B. großen Schriftarten eingestellt sein können ("hoher Kontrast").
Ich habe bei meinen Formularen alles verankert (links, oben usw.), habe die Formulare größenveränderlich gemacht und mit Splittern versehen. Einmal eingestellte Größen werden in einer Ini-Datei gespeichert.

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Multiplattform Ressourcen leicht abwandeln?

Beitrag von Christian »

Autosize und Anchros leisten da ganz gute Arbeit, wenn man die Layouts etwas vorrausschauend aufbaut, braucht man nicht unbedingt unterschiedliche pro Plattform.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Multiplattform Ressourcen leicht abwandeln?

Beitrag von mse »

Weitere Möglichkeiten:
- Basis forms für die Haupt-Plattform und inherited forms für weitere Plattformen.
- Basis forms für die Haupt-Plattform und abgewandelte forms mittels diff ähnlichem Werkzeug pflegen.

MSEgui benützt diese Methode in MSEi18n um Sprachmodule zu erzeugen. Dabei können nicht nur Texte sondern auch numerische Werte geändert werden. In MSEgui stellt sich die Notwendigkeit zu plattformabhängigen Anpassungen weniger, da die widgets überall gleich aussehen.

Martin
msei18n2.png
msei18n1.png

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: Multiplattform Ressourcen leicht abwandeln?

Beitrag von mschnell »

Der "Widget Type" fpGUI malt alles selber in Pascal Code. Das ist dann vermutlich vom Umfeld unabhämgig. Allerdings ist LCL/fpGUI noch nicht so ausgereift wie "WIN" oder "GTK2" (von Mac habe ich keine Ahnung). Man kann fpGUI auch ohne LCL verwenden. habe ich aber noch nicht probiert.

Delphi bietet ab XE2 übrigens mit "FireMonkey" auch eine "Widget Type" (keine Ahnung, wie so was bei Embarkadero heißt) an, der unabhängig vom Umfeld immer dasselbe Aussehen produziert. Anscheinend ist das die Zukunft ( Themes / konfigurierbare Desktop-Styles Ade ! )

-Michael

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Multiplattform Ressourcen leicht abwandeln?

Beitrag von Christian »

fpGUI kann man derzeit in Lazarus überhaupt noch nicht verwenden, sofern man in der Applikation nicht nur mit nem Button auskommt. MSchnell, hast du das jemals probiert ?
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Socke
Lazarusforum e. V.
Beiträge: 3178
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Multiplattform Ressourcen leicht abwandeln?

Beitrag von Socke »

Christian hat geschrieben:fpGUI kann man derzeit in Lazarus überhaupt noch nicht verwenden, sofern man in der Applikation nicht nur mit nem Button auskommt. MSchnell, hast du das jemals probiert ?
Was wohl nicht funktioniert, ist die LCL Integration (fpGUI als LCL-Widgetset). Man kann aber sehr wohl fpGUI mit Lazarus verwenden (mit eigenem GUI-Designer).
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

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: Multiplattform Ressourcen leicht abwandeln?

Beitrag von mschnell »

Christian hat geschrieben:fpGUI kann man derzeit in Lazarus überhaupt noch nicht verwenden, sofern man in der Applikation nicht nur mit nem Button auskommt. MSchnell, hast du das jemals probiert ?
Ja habe ich. Ich habe ein Testprogramm gemacht um die Multi-Threding Fähigkkeit der verschiedenen Widget-Typen zu testen. Da habe ich allerdings tatsächlich Probleme bei fpGUI festgestellt. Aber die mit dem Lazarus/LCL GUI Designer erstellte (nicht sehr komplexe) GUI-Oberfläche funktioniert durchaus. (Ich hänge morgen, wenn ich im Büro bin einen Screenshot an.)

Den eigenen fpGUI GUI-Designer habe ich nicht ausprobiert.

-Michael
Dateianhänge
GTK 2
GTK 2
fpGUI
fpGUI

Antworten