Form2.Position macht nicht immer was es soll
- lcb-User
- Beiträge: 55
- Registriert: Di 15. Jul 2014, 13:18
- OS, Lazarus, FPC: Linux Mint 21.1 Cinnamon Lazarus 2.3.0 (rev main-2_3-3744-g967034aff5) FPC 3.3.1
- CPU-Target: 64Bit
- Wohnort: München
Form2.Position macht nicht immer was es soll
Liebe Forengemeinde.
Das beigefügte Demo-Programm soll eigentlich selbsterklärend sein. Ein MainForm ruft ein Form2 auf und das Form2 soll eine gewünschte Position einnehmen.
Und Ihr ahnt es schon, bei mir klappt das nicht.
Zumindest nicht immer.
Nach einigen Versuchen habe ich den Verdacht das es mit den
Anpassungen des Desktop zusammen hängt.
Mein OS ist Linux Mint 21.2 Cinnamon
Da ich einen Monitor mit 2560 x 1440 Pixel habe stell ich immer die
Skalierung der Schrift auf 1,3. Um so größer der Vergrößerungsfaktor ist
um so mehr verschiebt sich die Position, nicht nur nach rechts auch nach unten. Bei wiederholten Aufruf des Programms veränder sich die Position auch.
Da kommt anscheinend die Routine, die zuständig für die Positionierung ist, nicht klar damit.
Wenn ich in einer VM Linux Mint 21.2 Mate oder xfce verwende ist alles in Ordnung.
Hat dass jemand auch schon beobachtet?
Oder hängt das mit dem Grafiktreiber zusammen?
Hab da einen AMD7-5700G am laufen. Also ein Prozessor mit integrierter Grafikkarte.
AMD Cezanne vendor: ASUSTeK driver: amdgpu
Das beigefügte Demo-Programm soll eigentlich selbsterklärend sein. Ein MainForm ruft ein Form2 auf und das Form2 soll eine gewünschte Position einnehmen.
Und Ihr ahnt es schon, bei mir klappt das nicht.
Zumindest nicht immer.
Nach einigen Versuchen habe ich den Verdacht das es mit den
Anpassungen des Desktop zusammen hängt.
Mein OS ist Linux Mint 21.2 Cinnamon
Da ich einen Monitor mit 2560 x 1440 Pixel habe stell ich immer die
Skalierung der Schrift auf 1,3. Um so größer der Vergrößerungsfaktor ist
um so mehr verschiebt sich die Position, nicht nur nach rechts auch nach unten. Bei wiederholten Aufruf des Programms veränder sich die Position auch.
Da kommt anscheinend die Routine, die zuständig für die Positionierung ist, nicht klar damit.
Wenn ich in einer VM Linux Mint 21.2 Mate oder xfce verwende ist alles in Ordnung.
Hat dass jemand auch schon beobachtet?
Oder hängt das mit dem Grafiktreiber zusammen?
Hab da einen AMD7-5700G am laufen. Also ein Prozessor mit integrierter Grafikkarte.
AMD Cezanne vendor: ASUSTeK driver: amdgpu
Sonnige Grüße
Bibsi
Traue keiner Statistik die du nicht selbst gefälscht hast (Sir Winston Churchill 1874 - 1965)
Linux Mint 21.1 Cinnamon 5.6.7 Kernel 5.19.0-35-generic
Lazarus 2.3.0 (rev main-2_3-3744-g967034aff5) FPC 3.3.1 x86_64-linux-gtk2
Bibsi
Traue keiner Statistik die du nicht selbst gefälscht hast (Sir Winston Churchill 1874 - 1965)
Linux Mint 21.1 Cinnamon 5.6.7 Kernel 5.19.0-35-generic
Lazarus 2.3.0 (rev main-2_3-3744-g967034aff5) FPC 3.3.1 x86_64-linux-gtk2
-
- Beiträge: 726
- Registriert: Do 27. Sep 2012, 00:07
- OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
- CPU-Target: x86_64-win64
- Wohnort: Hamburg
Re: Form2.Position macht nicht immer was es soll
Es gab Fehler mit poMainFormCenter ich hatte damals sogar ein Patch gereicht.
Jetzt habe ich festgestellt, dass das Problem mit Version 2.2.0 wieder aufgetaucht ist, vielleicht schon vorher, nur ich aktualisiere mein Lazarus selten.
Ondrej schrieb letztes Jahr dort, dass er irgendein Code umgeschrieben hat.
Jezt verschwindet wieder Titelzeile von Subform bei bestimmten Voraussetzungen wieder aus dem Bildschirmrand und deshalb kann man es nicht schließen. Na ja aus technischer Sicht wird es zentriert, aber praktisch ist es nicht, die Titelzeile sollte im sichtbaren Bereich bleiben. Ich habe bisher keine Zeit gehabt um das anzuschauen.
Und rechne auch damit, dass die Windowmanager unter Linux ihre eigenen Kopf haben.
Jetzt habe ich festgestellt, dass das Problem mit Version 2.2.0 wieder aufgetaucht ist, vielleicht schon vorher, nur ich aktualisiere mein Lazarus selten.
Ondrej schrieb letztes Jahr dort, dass er irgendein Code umgeschrieben hat.
Jezt verschwindet wieder Titelzeile von Subform bei bestimmten Voraussetzungen wieder aus dem Bildschirmrand und deshalb kann man es nicht schließen. Na ja aus technischer Sicht wird es zentriert, aber praktisch ist es nicht, die Titelzeile sollte im sichtbaren Bereich bleiben. Ich habe bisher keine Zeit gehabt um das anzuschauen.
Und rechne auch damit, dass die Windowmanager unter Linux ihre eigenen Kopf haben.
-
- Beiträge: 726
- Registriert: Do 27. Sep 2012, 00:07
- OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
- CPU-Target: x86_64-win64
- Wohnort: Hamburg
Re: Form2.Position macht nicht immer was es soll
Ich habe dein Programm getestet, es macht genau das was du möchtest. Dein Problem ist, wie ich vermutet habe, die Windowmanager von Linux.
Mein Problem taucht auf wenn Subform größer als Mainform ist und Mainform am oberen Rand ist.
Getestet mit:
Windows 10 Pro 64Bit, Lazarus 2.2.0, Fpc 3.2.3 32Bit.
Mein Problem taucht auf wenn Subform größer als Mainform ist und Mainform am oberen Rand ist.
Getestet mit:
Windows 10 Pro 64Bit, Lazarus 2.2.0, Fpc 3.2.3 32Bit.
- lcb-User
- Beiträge: 55
- Registriert: Di 15. Jul 2014, 13:18
- OS, Lazarus, FPC: Linux Mint 21.1 Cinnamon Lazarus 2.3.0 (rev main-2_3-3744-g967034aff5) FPC 3.3.1
- CPU-Target: 64Bit
- Wohnort: München
Re: Form2.Position macht nicht immer was es soll
Hallo Soner
Danke für Deine Antwort.
Ich will mich ja nicht unbeliebt machen, aber CT hat anscheinend eine Lösung gefunden.
Da läuft`s richtig. Vielleicht kann man da was abschauen
.
Es ist ja nur unter Cinnamon ein Problem.
Danke für Deine Antwort.
Ich will mich ja nicht unbeliebt machen, aber CT hat anscheinend eine Lösung gefunden.
Da läuft`s richtig. Vielleicht kann man da was abschauen

Es ist ja nur unter Cinnamon ein Problem.

Sonnige Grüße
Bibsi
Traue keiner Statistik die du nicht selbst gefälscht hast (Sir Winston Churchill 1874 - 1965)
Linux Mint 21.1 Cinnamon 5.6.7 Kernel 5.19.0-35-generic
Lazarus 2.3.0 (rev main-2_3-3744-g967034aff5) FPC 3.3.1 x86_64-linux-gtk2
Bibsi
Traue keiner Statistik die du nicht selbst gefälscht hast (Sir Winston Churchill 1874 - 1965)
Linux Mint 21.1 Cinnamon 5.6.7 Kernel 5.19.0-35-generic
Lazarus 2.3.0 (rev main-2_3-3744-g967034aff5) FPC 3.3.1 x86_64-linux-gtk2
-
- Beiträge: 726
- Registriert: Do 27. Sep 2012, 00:07
- OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
- CPU-Target: x86_64-win64
- Wohnort: Hamburg
Re: Form2.Position macht nicht immer was es soll
Ich lese öfters Cinnamon hat hier und da Baustellen, wenn es bei XFCE, KDE und Gnome kein Fehler gibt, dann ist es gut.
CodeTyphon hat wahrscheinlich LCL von Lazarus noch nicht aktualisiert. Kannst du bitte, wenn du Zeit hast von dein CodeTyphon die Datei "lcl/include/customform.inc" hier hochladen, ich möchte mal schauen was da anders ist. Ich habe keine Lust jetzt mit mobilem Internet 1,5 GB Große CodeTyphon herunterzuladen.
CodeTyphon hat wahrscheinlich LCL von Lazarus noch nicht aktualisiert. Kannst du bitte, wenn du Zeit hast von dein CodeTyphon die Datei "lcl/include/customform.inc" hier hochladen, ich möchte mal schauen was da anders ist. Ich habe keine Lust jetzt mit mobilem Internet 1,5 GB Große CodeTyphon herunterzuladen.
- lcb-User
- Beiträge: 55
- Registriert: Di 15. Jul 2014, 13:18
- OS, Lazarus, FPC: Linux Mint 21.1 Cinnamon Lazarus 2.3.0 (rev main-2_3-3744-g967034aff5) FPC 3.3.1
- CPU-Target: 64Bit
- Wohnort: München
Re: Form2.Position macht nicht immer was es soll
GerneSoner hat geschrieben: Fr 20. Okt 2023, 23:10 Kannst du bitte, wenn du Zeit hast von dein CodeTyphon die Datei "lcl/include/customform.inc" hier hochladen

Sonnige Grüße
Bibsi
Traue keiner Statistik die du nicht selbst gefälscht hast (Sir Winston Churchill 1874 - 1965)
Linux Mint 21.1 Cinnamon 5.6.7 Kernel 5.19.0-35-generic
Lazarus 2.3.0 (rev main-2_3-3744-g967034aff5) FPC 3.3.1 x86_64-linux-gtk2
Bibsi
Traue keiner Statistik die du nicht selbst gefälscht hast (Sir Winston Churchill 1874 - 1965)
Linux Mint 21.1 Cinnamon 5.6.7 Kernel 5.19.0-35-generic
Lazarus 2.3.0 (rev main-2_3-3744-g967034aff5) FPC 3.3.1 x86_64-linux-gtk2
-
- Beiträge: 726
- Registriert: Do 27. Sep 2012, 00:07
- OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
- CPU-Target: x86_64-win64
- Wohnort: Hamburg
Re: Form2.Position macht nicht immer was es soll
Ich habe jetzt Lazarus-Trunk version installiert, da taucht mein poMainFormCenter-Problem nicht, es ist genau so wie es sein soll. Vielleicht solltest du auch auf Trunk oder zumindest auf 3.0 wechseln(3.0. nicht getestet).
Wahrscheinlich wurde Bugfix nicht in die Version 2.2 eingespielt, ich bin von 1.8 auf 2.2. gewechselt und bei meine 1.8 hatte ich alle wichtigen Fehlerkorrekturen selbst eingespielt.
Ich schaue mal den unterschied jetzt von CodeTyphon.
Wenn du schon dabei bist kannst du bitte auf ein Form ein Memo packen und das bei TForm.OnCreate schreiben:
Ich möchte mal wissen, welche LCL-Version er verwendet, ich wette Trunk wie er das immer macht.
Aktuelle LCL-Version(trunk) ist 3.99.0.0.
Danke.
Wahrscheinlich wurde Bugfix nicht in die Version 2.2 eingespielt, ich bin von 1.8 auf 2.2. gewechselt und bei meine 1.8 hatte ich alle wichtigen Fehlerkorrekturen selbst eingespielt.
Ich schaue mal den unterschied jetzt von CodeTyphon.
Wenn du schon dabei bist kannst du bitte auf ein Form ein Memo packen und das bei TForm.OnCreate schreiben:
Code: Alles auswählen
//uses LCLVersion; //nicht vergessen
procedure TForm1.FormCreate(Sender: TObject);
begin
Memo1.Lines.Text:=
'Betriebssystem: '+{$I %FPCTARGETOS%}+LineEnding+
'Kompilerinfo: '+'FPC '+{$I %FPCVERSION%}+LineEnding+
'Platform: '+{$I %FPCTARGETCPU%}+' - '+{$I %FPCTARGETOS%}+LineEnding+
'LCL-Version: '+lcl_version;
end;
Aktuelle LCL-Version(trunk) ist 3.99.0.0.
Danke.
-
- Beiträge: 726
- Registriert: Do 27. Sep 2012, 00:07
- OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
- CPU-Target: x86_64-win64
- Wohnort: Hamburg
Re: Form2.Position macht nicht immer was es soll
Ich habe jetzt die Datei von CodeTyphon angeschaut, es ist so wie ich vermutet habe, er verwendet die Trunk-Version von LCL. Es gibt nur an 4 Stellen Unterschiede, es geht um FEmbedCustomForm, dass er verwendet, siehe nach dem Kommentar "ct9999". Das mache ich auch bei meiner LCL-Anpassungen, ansonsten ist alles mit Trunk-Version gleich.
Wenn du mit CodeTyphoon zufrieden bist, dann benutze Trunk-Version von Lazarus.
Wenn du mit CodeTyphoon zufrieden bist, dann benutze Trunk-Version von Lazarus.
- lcb-User
- Beiträge: 55
- Registriert: Di 15. Jul 2014, 13:18
- OS, Lazarus, FPC: Linux Mint 21.1 Cinnamon Lazarus 2.3.0 (rev main-2_3-3744-g967034aff5) FPC 3.3.1
- CPU-Target: 64Bit
- Wohnort: München
Re: Form2.Position macht nicht immer was es soll
Ich hab jetzt fpcupdeluxe-x86_64-linux auf 2.4.a aktualisiert
und trust aufgesetzt.
Es hat sich aber leider nichts verändert.
Doch es hat sich was verändert:

der Report und die Ausgabe als PDF hat keine deutschen Umlaute mehr Das ist wohl die aktuelle Report-Komponente dass ist aber eine andere Geschichte

Sonnige Grüße
Bibsi
Traue keiner Statistik die du nicht selbst gefälscht hast (Sir Winston Churchill 1874 - 1965)
Linux Mint 21.1 Cinnamon 5.6.7 Kernel 5.19.0-35-generic
Lazarus 2.3.0 (rev main-2_3-3744-g967034aff5) FPC 3.3.1 x86_64-linux-gtk2
Bibsi
Traue keiner Statistik die du nicht selbst gefälscht hast (Sir Winston Churchill 1874 - 1965)
Linux Mint 21.1 Cinnamon 5.6.7 Kernel 5.19.0-35-generic
Lazarus 2.3.0 (rev main-2_3-3744-g967034aff5) FPC 3.3.1 x86_64-linux-gtk2
- lcb-User
- Beiträge: 55
- Registriert: Di 15. Jul 2014, 13:18
- OS, Lazarus, FPC: Linux Mint 21.1 Cinnamon Lazarus 2.3.0 (rev main-2_3-3744-g967034aff5) FPC 3.3.1
- CPU-Target: 64Bit
- Wohnort: München
Re: Form2.Position macht nicht immer was es soll
Also, mein Workaround ist;
Das passt für mich vorerst.
Danke für die Hilfe.
Code: Alles auswählen
procedure TMainForm.DruckDialog;
begin
DruckRechnungForm:=TDruckRechnungForm.Create(self);
DruckRechnungForm.Position:=TPosition(0);
DruckRechnungForm.Top:=TForm(self).Top+(TForm(self).Height div 2) - (DruckRechnungForm.Height div 2);
DruckRechnungForm.Left:=TForm(self).Left+(TForm(self).Width div 2) - (DruckRechnungForm.Width div 2);
DruckRechnungForm.ShowModal;
DruckRechnungForm.FreeOnRelease;
end;
Danke für die Hilfe.
Sonnige Grüße
Bibsi
Traue keiner Statistik die du nicht selbst gefälscht hast (Sir Winston Churchill 1874 - 1965)
Linux Mint 21.1 Cinnamon 5.6.7 Kernel 5.19.0-35-generic
Lazarus 2.3.0 (rev main-2_3-3744-g967034aff5) FPC 3.3.1 x86_64-linux-gtk2
Bibsi
Traue keiner Statistik die du nicht selbst gefälscht hast (Sir Winston Churchill 1874 - 1965)
Linux Mint 21.1 Cinnamon 5.6.7 Kernel 5.19.0-35-generic
Lazarus 2.3.0 (rev main-2_3-3744-g967034aff5) FPC 3.3.1 x86_64-linux-gtk2