Unterschiede Win8 und Linux

Für Fragen von Einsteigern und Programmieranfängern...
malabarista
Beiträge: 321
Registriert: Sa 11. Jun 2016, 12:16
OS, Lazarus, FPC: Linux Mint 18.1 L1.6.2-1 FPC 3.0.0
CPU-Target: 64Bit
Wohnort: Konstanz

Unterschiede Win8 und Linux

Beitrag von malabarista »

Ich habe nun den gleichen Programmcode unter Linux Mint 32-Bit übersetzt und unter Win8.
Das Ergebnis ist aber leider verschieden. Folgendes ist mir aufgefallen:

1. TButton Schriftfarbe: unter Linux lässt sie sich mittels
Button1.Font.Color:=clred;
auf rot einstellen. Unter Win bleibt sie schwarz
Kann ich das irgendwie ändern ? Oder geht das nicht ?

2. Fensterstil: Windowstate:wsFullscreen: unter Linux : volles Bildschirmformat
unter Win8 : ein maximiertes Fenster mit Rahmen, welches seitlich erheblich verschoben ist. kein Fullscreen

3. FloattoStr : unter Linux enthält das Ergebnis eines Dezimalpunkt.
Unter Win8 enthält es ein Dezimalkomma.
Vermutlich kann man dies irgendwo einstellen. Wo ?

4. TDBF: Es wird eine Datei geöffnet (nicht exclusive), geschrieben, geschlossen. Anschliessend exclusive geöffnet, gepackt und wieder geschlossen.

Code: Alles auswählen

 
dbank[i].Exclusive := True;
dbank[i].Open;
dbank[i].PackTable;
dbank[i].RegenerateIndexes;
dbank[i].Close;
dbank[i].Exclusive := False;
 

Unter Linux kein Fehler, alles funktioniert einwandfrei.

unter windows8 erhalte ich einen Datenbankfehler.
Was muss ich da ändern ?
Ich habe Verschiedenes ausprobiert, aber einen Datenbankfehler habe ich immer erhalten.
Deshalb vermute ich, dass ich unter windows dieses packtable anders angehen muss.
Wie ?

marcov
Beiträge: 1100
Registriert: Di 5. Aug 2008, 09:37
OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
CPU-Target: 32/64,PPC(+64), ARM
Wohnort: Eindhoven (Niederlande)

Re: Unterschiede Win8 und Linux

Beitrag von marcov »

Fuege mal "clocale" zhinu an der USES list unter Linux.

malabarista
Beiträge: 321
Registriert: Sa 11. Jun 2016, 12:16
OS, Lazarus, FPC: Linux Mint 18.1 L1.6.2-1 FPC 3.0.0
CPU-Target: 64Bit
Wohnort: Konstanz

Re: Unterschiede Win8 und Linux

Beitrag von malabarista »

Und welchen Punkt soll das verändern ?

Mathias
Beiträge: 6164
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Unterschiede Win8 und Linux

Beitrag von Mathias »

1. Dies geht nur unter Linux, ansonsten musst du eine Alternative zum Button nehmen.

2. Evt. kannst mit BorderStyle noch etwas verändern.

3. Ich denke du hast unter Linux unter Windows verschiedene Ländereinstellungen gemacht (Betriebsystem).
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Warf
Beiträge: 1908
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Unterschiede Win8 und Linux

Beitrag von Warf »

1. Das liegt am WidgetSet. Windows Forms unterstützen das einfach nicht, du könntest GTK oder QT verwenden, damit hast du ein einheitliches WS und einheitliche Eigenschaften unter allen Betriebsystemen.
2. Borderstyle BSNone sollte das fixen, unter Windows kann ein Fenster mit Rahmen nicht in den Fullscreen gehen.
3. Über DefaultFormatSettings.DecimalSeparator kannst du Einstellen welches Symbol du verwenden möchtest

Mathias
Beiträge: 6164
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Unterschiede Win8 und Linux

Beitrag von Mathias »

3. Über DefaultFormatSettings.DecimalSeparator kannst du Einstellen welches Symbol du verwenden möchtest

Ich denke eher, das er bei der Mint Installation versehentlich ein falsches Land gewählt hat.
Ausser er hat es bewusst gemacht, dann ist DefaultFormatSettings.DecimalSeparator die Lösung.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

malabarista
Beiträge: 321
Registriert: Sa 11. Jun 2016, 12:16
OS, Lazarus, FPC: Linux Mint 18.1 L1.6.2-1 FPC 3.0.0
CPU-Target: 64Bit
Wohnort: Konstanz

Re: Unterschiede Win8 und Linux

Beitrag von malabarista »

Ich habe nun Vieles in meinem Programm umgestellt und eure Anregungen berücksichtigt.
Nun ergibt sich folgendes:

1. ist so, geht nicht anders
2. Ausser dem Borderstyle muss unbedingt Left und Top auf 0 gesetzt werden. Dann klappt es.
3. DefaultFormatSettings ist die Lösung.
4. War mein Fehler. Nachdem ich den "Lebenslauf" eines Formulars besser kennengelernt habe, habe ich das Öffnen und Schliessen der Datenbanken geeignet angepasst und jetzt funktioniert es einwandfrei.

Ein kleines Problem bleibt noch:
Lineending funktioniert nicht unter Windows. Ich wollte damit den Text in einem Button umbrechen.
Hat jemand eine andere Idee, wie ich den Text in einem TButton zweizeilig machen kann ?

Mathias
Beiträge: 6164
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Unterschiede Win8 und Linux

Beitrag von Mathias »

Hat jemand eine andere Idee, wie ich den Text in einem TButton zweizeilig machen kann

Evtl, BitBtn nehmen, mit eine kleiner Modifikation kann man auch ein Panel als Button nehmen,
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Warf
Beiträge: 1908
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Unterschiede Win8 und Linux

Beitrag von Warf »

malabarista hat geschrieben:Ein kleines Problem bleibt noch:
Lineending funktioniert nicht unter Windows. Ich wollte damit den Text in einem Button umbrechen.
Hat jemand eine andere Idee, wie ich den Text in einem TButton zweizeilig machen kann ?


Wieder eine Limitierung durch das WidgetSet Windows Forms, entweder anderes WS nehmen, oder andere Komponente nehmen

Mathias
Beiträge: 6164
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Unterschiede Win8 und Linux

Beitrag von Mathias »

Wieder eine Limitierung durch das WidgetSet Windows Forms

Windows wird mir je länger je mehr immer unsympathischer. Da sind sie schon bei der Version 10, verbraucht zig GigaByte Speicher, kann aber nicht mal einen Button 2-Zeilig darstellen, geschwiegen von farbig.

Die Componente BGRAControls wäre vielleicht noch eine Alternative.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

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: Unterschiede Win8 und Linux

Beitrag von Erwin »

Zu 1: In solchen Fällen kann man ja statdessen vielleicht ein Panel nehmen? Wenn man dann noch ein wenig an der Breite des Rahmen herumbastelt (glaube nur um 1 mehr oder weniger?), dann dürfte es sogar wie ein Button aussehen. Und man kann dann neben Schrift auch die Fläche farblich ändern. Oder geht das eh auch bei normalen Buttons? Denke mal, wenn es nicht zu viele werden, macht es bei den Heutigen Rechnern kaum einen merkbaren Unterschied.
Lazarus 2.2.0 / FP 3.2.4

Warf
Beiträge: 1908
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Unterschiede Win8 und Linux

Beitrag von Warf »

Mathias hat geschrieben:
Wieder eine Limitierung durch das WidgetSet Windows Forms

Windows wird mir je länger je mehr immer unsympathischer. Da sind sie schon bei der Version 10, verbraucht zig GigaByte Speicher, kann aber nicht mal einen Button 2-Zeilig darstellen, geschwiegen von farbig.

Die Componente BGRAControls wäre vielleicht noch eine Alternative.

Ich bin aktuell soweit zu sagen, wenn ein Control nicht bietet was ich will schreib ich mir ein eigenes ;D

Aber ich hoffe das eventuell bald GTK3 oder QT5 bald Verfnünftige Alternativen darstellen, QT4 und GTK2 sind ja ein wenig outdated

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: Unterschiede Win8 und Linux

Beitrag von Euklid »

Warf hat geschrieben:Aber ich hoffe das eventuell bald GTK3 oder QT5 bald Verfnünftige Alternativen darstellen, QT4 und GTK2 sind ja ein wenig outdated


Die dürften aber ja unter Window kaum eine Rolle spielen...^^

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: Unterschiede Win8 und Linux

Beitrag von mse »

@malabarista:
Wenn dir Plattformunabhängigkeit wichtig ist, könntest du auch ein Entwicklungssystem für Free Pascal in Betracht ziehen, welches grundsätzlich alles selbst zeichnet wie MSEide+MSEgui oder fpGUI. Mit Lazarus wirst du mit solchen Einschränkungen leben müssen.

malabarista
Beiträge: 321
Registriert: Sa 11. Jun 2016, 12:16
OS, Lazarus, FPC: Linux Mint 18.1 L1.6.2-1 FPC 3.0.0
CPU-Target: 64Bit
Wohnort: Konstanz

Re: Unterschiede Win8 und Linux

Beitrag von malabarista »

Das war das richtige Stichwort für mich: Panel bringt die Lösung für die vielen Unzulänglichkeiten von Button unter Windows.
Unter win sieht das Panel genauso aus wie unter Linux.
Danke.

Antworten