Verschiedene Plattformen [gelöst]

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Cool-Tuc
Beiträge: 100
Registriert: Mi 6. Apr 2011, 17:10

Verschiedene Plattformen [gelöst]

Beitrag von Cool-Tuc »

Hallo alle,

ich habe ein kleines Testprogramm gerschrieben und unter WindowsXP kompiliert; sieht so aus wie ich es designed habe. Nun habe ich den selben Code unter (lazarus) Ubuntu kompiliert. Läuft ebenfalls, aber die Optik stimmt einfach nicht mehr. Alle Buttons sind zu klein für die Schrift, einige Komponenten haben abgedunkelte Farben und Abstände der Controlls stimmen nicht.
Muss ich unter der Ubuntu-IDE etwas einstellen, dass es gleicht aussieht wie unter Windows? Am Code etwas zu ändern ist schlecht, da die Codebasis gleich ist.

Udo
Zuletzt geändert von Cool-Tuc am Mi 20. Aug 2014, 08:17, insgesamt 1-mal geändert.

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

Re: Verschiedene Plattformen

Beitrag von theo »

Lade mal den Code in einem ZIP hoch. So kann man nicht viel genaues sagen.

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: Verschiedene Plattformen

Beitrag von mse »

Cool-Tuc hat geschrieben: Muss ich unter der Ubuntu-IDE etwas einstellen, dass es gleicht aussieht wie unter Windows? Am Code etwas zu ändern ist schlecht, da die Codebasis gleich ist.
Wenn die Programme überall gleich aussehen müssen solltest du das Lazarus "custom drawn"- oder Qt-widgetset verwenden oder eine Entwicklungsumgebung benutzen, welche grundsätzlich alles selber zeichnet, z.B. hier:
http://www.lazarusforum.de/viewforum.php?f=53
http://sourceforge.net/projects/mseide-msegui/ oder hier
http://fpgui.sourceforge.net/

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: Verschiedene Plattformen

Beitrag von mschnell »

mse hat geschrieben:oder eine Entwicklungsumgebung benutzen, welche grundsätzlich alles selber zeichnet, z.B. hier: http://www.lazarusforum.de/viewforum.php?f=53
Das könnte also vielleicht tatsächlich auch hier http://www.lazarusforum.de/viewtopic.php?f=13&t=7252 helfen ?!?!?

Gibt es Bestrebungen, bei mseGUI eine Library Version zu schaffen, die bei Android über die Java API (wie nennt man die korrekt ?) "selber zeichnet" ?

Ich stelle die frage nochmal im mse-Subforum: http://www.lazarusforum.de/viewtopic.php?f=53&t=7256

-Michael

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Re: Verschiedene Plattformen

Beitrag von Euklid »

Cool-Tuc hat geschrieben: Muss ich unter der Ubuntu-IDE etwas einstellen, dass es gleicht aussieht wie unter Windows? Am Code etwas zu ändern ist schlecht, da die Codebasis gleich ist.
Hallo Udo,

Dein Problem liegt an den Vorgaben der Betriebssysteme. Damit sich Dein Programm unter Windows wie ein Windows-Programm verhält, muss es auch wie ein Windowsprogramm aussehen. D.h. die Standardschrift ist etwas kleiner als die unter gtk2. Damit das Programm unter ubuntu aussieht wie ein am System angepasstes Programm, ist dort die Schrift etwas größer. Du wirst auch bemerkt haben, dass die Buttons zw Ubuntu-Programmen und Windows-Programmen anders aussehen, dass das "x" zum Schließen der Fenster an unterschiedlicher Stelle liegen, etc.
Lazarus versucht also die Programme mit den auf dem jeweiligen Betriebssystem gebräuchlichen widgetset zu compilieren. Dadurch sind die Programme an das für das Betriebssystem übliche Design angepasst.

Wir gehen in Promathika so vor, dass wir die Buttons etc von Anfang an von der Größe her so gestalten, dass die Beschriftung auch im jeweils anderen System noch draufpasst. Möchte man das nicht, so muss man die Größe anpassen.

Die mseide verfolgt meines Wissens den Ansatz, nicht auf die widgetsets der Systeme zuzugreifen, sondern alles selbst zu zeichnen. Das hat einen Vor- und einen Nachteil: Vorteil ist, dass die Programme wirklich überall gleich aussehen und die Nutzer von System zu System sich nicht umgewöhnen müssen. Nachteil ist, dass die Programme dadurch wenig an das Syetem angepasst aussehen.

Viele Grüße, Euklid

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: Verschiedene Plattformen

Beitrag von Christian »

Genau für den Fall gibts die Autosize Property an vielen Controls. Auf einigen Widgetsets ist das z.b. auch in DesignGuidelines vorgeschrieben (Apple).
http://wiki.freepascal.org/Autosize_/_Layout
http://wiki.freepascal.org/LCL_Tips
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Cool-Tuc
Beiträge: 100
Registriert: Mi 6. Apr 2011, 17:10

Re: Verschiedene Plattformen

Beitrag von Cool-Tuc »

Hallo,

hat etwas gedauert, hier mal was ich meine. Ich habe eine Codebasis in einem gemeinsamen Verzeichnis. Einmal habe ich unter Windows kompiliert und laufen lassen. Danach habe ich den selben Code unter Ubuntu kompiliert und gestartet. Wie kann ich hier die wirklich kleinen Bilder einfügen...da ich keine URl für die Bilder habe...?


Gruß

Udo

Michl
Beiträge: 2513
Registriert: Di 19. Jun 2012, 12:54

Re: Verschiedene Plattformen

Beitrag von Michl »

Cool-Tuc hat geschrieben:Wie kann ich hier die wirklich kleinen Bilder einfügen
Einfach wenn du eine Antwort erstellst/bearbeitest, im Reiter "Dateianhang hochladen" (unterhalb des Antwort erstellen - Fensters) die Bilder einfügen ("Durchsuchen" klicken, Bild wählen, "Datei hinzufügen" klicken).

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection;  

Cool-Tuc
Beiträge: 100
Registriert: Mi 6. Apr 2011, 17:10

Re: Verschiedene Plattformen

Beitrag von Cool-Tuc »

..ah, ok habe ich vorhin übersehen... also noch einmal...

Ich habe eine Codebasis in einem gemeinsamen Verzeichnis.
Unter Windows/Ubuntu kompiliert und gestartet sieht es so aus (jeweils gegenübergestellt):
windows.png
windows.png (1.05 KiB) 2714 mal betrachtet
ubuntu.png
ubuntu.png (1.72 KiB) 2714 mal betrachtet
buttons-windows.png
buttons-windows.png (1.32 KiB) 2714 mal betrachtet
buttons-ubuntu.png
buttons-ubuntu.png (4.03 KiB) 2714 mal betrachtet
Udo

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2849
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Verschiedene Plattformen

Beitrag von m.fuchs »

Ja, und dabei wird dir Christians Tipp helfen.
0118999881999119725-3

Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Cool-Tuc
Beiträge: 100
Registriert: Mi 6. Apr 2011, 17:10

Re: Verschiedene Plattformen

Beitrag von Cool-Tuc »

...vielen Dank erst einmal an alle....
habe ich gerade schon umgesetzt, zumindest mit den Buttons "AutoSize=true" und "MinWidth" gesetzt; funktioniert soweit. Das Problem ist nur, dass das unter Windows eingestellte MinWidth nicht für ubuntu reicht. Also müsste ich das MinWidth so setzen, dass es auch für ubuntu reicht und dann siehts in Windows nicht mehr aus. Werde also wohl beim Programmstart nach dem BS abfragen und entsprechend die MinWidth unterschiedlich setzen...

udo

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2849
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Verschiedene Plattformen

Beitrag von m.fuchs »

Probier es doch mal mit anderen Möglichkeiten die in dem Artikel beschrieben werden. Ich vermute dass Anchoring bei deinem Problem helfen könnte.
0118999881999119725-3

Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

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: Verschiedene Plattformen

Beitrag von Christian »

Wenn du nur Autosize anmachst wird die Buttongröße automatisch immer so angepasst das die Texte reinpassen.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Cool-Tuc
Beiträge: 100
Registriert: Mi 6. Apr 2011, 17:10

Re: Verschiedene Plattformen

Beitrag von Cool-Tuc »

Hallo,

funktioniert so weit. Starte ich oben mit den Controlls im Formular mit Anchoring, AutoSize und MinSize und arbeite mich nach unten vor, passt alles (Anstände, Größen usw.) wunderbar...nur irgendwann ist dann das Formular zuende und die letzten Controlls sind unter Windows noch sichtbar, unter Ubuntu aber nicht mehr...also muss ich doch wieder manuell ran...

Udo

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: Verschiedene Plattformen

Beitrag von Christian »

Das Formular hat auch ne Autosize property :)
Aber ich setz da bei mir tatsächlich ab und an die Höhe lieber per Hand im OnResize.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Antworten