Verschiedene Plattformen [gelöst]
Verschiedene Plattformen [gelöst]
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
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.
Re: Verschiedene Plattformen
Lade mal den Code in einem ZIP hoch. So kann man nicht viel genaues sagen.
-
- 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
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: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.
http://www.lazarusforum.de/viewforum.php?f=53
http://sourceforge.net/projects/mseide-msegui/ oder hier
http://fpgui.sourceforge.net/
-
- 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
Das könnte also vielleicht tatsächlich auch hier http://www.lazarusforum.de/viewtopic.php?f=13&t=7252 helfen ?!?!?mse hat geschrieben:oder eine Entwicklungsumgebung benutzen, welche grundsätzlich alles selber zeichnet, z.B. hier: http://www.lazarusforum.de/viewforum.php?f=53
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
-
- 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
Hallo Udo,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.
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
-
- 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
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
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/
Re: Verschiedene Plattformen
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
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
Re: Verschiedene Plattformen
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).Cool-Tuc hat geschrieben:Wie kann ich hier die wirklich kleinen Bilder einfügen
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;
Re: Verschiedene Plattformen
..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):
Udo
Ich habe eine Codebasis in einem gemeinsamen Verzeichnis.
Unter Windows/Ubuntu kompiliert und gestartet sieht es so aus (jeweils gegenübergestellt):
Udo
- 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
Ja, und dabei wird dir Christians Tipp helfen.
0118999881999119725-3
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
Re: Verschiedene Plattformen
...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
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
- 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
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
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
-
- 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
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/
Re: Verschiedene Plattformen
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
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
-
- 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
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.

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/