Code verhält sich unter Windows Falsch, unter Linux Richtig.

Antworten
Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1498
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Code verhält sich unter Windows Falsch, unter Linux Richtig.

Beitrag von corpsman »

Guten Morgen allerseits,

Ich habe hier ein kleines Beispielprogramm gebastelt, was ich unter Windows SVN Revision 40379 und unter Linux Aktuelle SVN Revision compiliere und Ausführe.

Unter Linux ist es wie es sein soll, bei jedem Klick auf den Button wird ein TTabsheet erstellt und ein TScrollbar beide sind sichtbar und man kann sie "bedienen".

Unter Windows sieht man nur die TTabsheets, die TScrollbars sind nicht sichtbar.

Kann den Fehler jemand nachstellen ? Habe ich Blödsinn programmiert, oder ist das ein Bug, denn ich dann reporten werde ?

Gruß

Corpsman
Dateianhänge
Problem.zip
Quellcode zum Testen
(2.27 KiB) 76-mal heruntergeladen
--
Just try it

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

Re: Code verhält sich unter Windows Falsch, unter Linux Rich

Beitrag von theo »

Warum so complicirt?

{ s.Left := 5;
s.Top := t.Height - s.Height - 5;
s.Width := t.width - 10;}

s.Align:=alBottom; <---- So ist sauber

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1498
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: Code verhält sich unter Windows Falsch, unter Linux Rich

Beitrag von corpsman »

Damits "hübsch" aussieht muss ich machen :

Code: Alles auswählen

 
  s.Align:=alBottom;
  s.BorderSpacing.Bottom:=5;
  s.BorderSpacing.Left := 5;
  s.BorderSpacing.Right := 5
 


Mein Problem ist damit gelöst, danke.

Dennoch sollte die andere Variante auch funktionieren, oder ?
--
Just try it

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

Re: Code verhält sich unter Windows Falsch, unter Linux Rich

Beitrag von theo »

corpsman hat geschrieben:Dennoch sollte die andere Variante auch funktionieren, oder ?


Nicht unbedingt. Sowas macht man nicht OnCreate oder OnButtonClick sondern OnBoundsChanged oder OnResize, damit klar ist, dass das Elternelement fertig ist mit dem bestimmen der Grösse.

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1498
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: Code verhält sich unter Windows Falsch, unter Linux Rich

Beitrag von corpsman »

*g*

OK, so weit hatte ich in meinem Lazarus Buch noch nicht gelesen.

Danke für die Ausführung.
--
Just try it

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

Re: Code verhält sich unter Windows Falsch, unter Linux Rich

Beitrag von theo »

corpsman hat geschrieben:OK, so weit hatte ich in meinem Lazarus Buch noch nicht gelesen.


Naja, dazu muss man kein Buch lesen. ;-)
Spätestens beim verändern der Grösse des Containers siehst du ja, dass der Scrollbar nicht mitkommt.

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1498
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: Code verhält sich unter Windows Falsch, unter Linux Rich

Beitrag von corpsman »

Da hättest du recht, wenn nicht die Form Constraints das verhindern würden *g*.

Sonst wäre mir das wahrscheindlich auch schon aufgefallen.
--
Just try it

Antworten