Panel.Canvas, Grösse falsch ?

Für Fehler in Lazarus, um diese von anderen verifizieren zu lassen.
Antworten
Mathias
Beiträge: 4713
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunc)
CPU-Target: 64Bit
Wohnort: Schweiz

Panel.Canvas, Grösse falsch ?

Beitrag von Mathias »

Wen ich folgenden Code unter Linux und Windows laufen lasse,
habe ich ich unter Windows beim Panel und Canvas unterschiedliche Grössen.
Bei beiden OS, habe ich Lazarus 2.0.8 verwendet.
Ist dies ein Bug von Lazarus ?

Code: Alles auswählen

procedure TForm1.Panel1Paint(Sender: TObject);
begin
  Panel1.Canvas.Rectangle(10, 10, Panel1.Width - 10, Panel1.Height - 10);

  self.Caption :=
    'pan w: ' + Panel1.Width.ToString + ' h: ' + Panel1.Height.ToString + '     ' +
    'can w: ' + Panel1.Canvas.Width.ToString + ' h: ' + Panel1.Canvas.Height.ToString;
end;  
Siehe Anhang:
Dateianhänge
paneltest.zip
(124.76 KiB) 4-mal heruntergeladen
Bildschirmfoto vom 2020-05-17 15-36-06.png
Bildschirmfoto vom 2020-05-17 15-36-06.png (56.7 KiB) 489 mal betrachtet
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot

Winni
Beiträge: 157
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.06, fpc 3.04
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: Panel.Canvas, Grösse falsch ?

Beitrag von Winni »

Hi!

Hast Du bei den verschiedenen Betriebssystem verschiedene Bildschirmauflösungen?

Lass Dir doch auch mal die Größe der Form anzeigen - dann kommen wir vielleicht weiter.

Winni

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

Re: Panel.Canvas, Grösse falsch ?

Beitrag von Mathias »

Hast Du bei den verschiedenen Betriebssystem verschiedene Bildschirmauflösungen?
Der Screenshot oben ist direkt vom Bildschrim.
Linux nativ, Windows in der VB.
Die Forms sind beide genau gleich gross.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot

Winni
Beiträge: 157
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.06, fpc 3.04
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: Panel.Canvas, Grösse falsch ?

Beitrag von Winni »

Winni hat geschrieben:
So 17. Mai 2020, 18:12
Hi!

Lass Dir doch auch mal die Größe der Form anzeigen - dann kommen wir vielleicht weiter.

Winni

wennerer
Beiträge: 124
Registriert: Di 19. Mai 2015, 20:05
OS, Lazarus, FPC: Linux Mint 19.3 Cinnamon, Lazarus 2.1.0, FPC 3.3.1 ,Lazarus Stable 2.0.6,
CPU-Target: x86_64

Re: Panel.Canvas, Grösse falsch ?

Beitrag von wennerer »

Hallo,
habe es eben auch getestet. In Windows wird die Größe der Form zurück gegeben. Warum auch immer?

Grüße
Bernd

wennerer
Beiträge: 124
Registriert: Di 19. Mai 2015, 20:05
OS, Lazarus, FPC: Linux Mint 19.3 Cinnamon, Lazarus 2.1.0, FPC 3.3.1 ,Lazarus Stable 2.0.6,
CPU-Target: x86_64

Re: Panel.Canvas, Grösse falsch ?

Beitrag von wennerer »

Habe eben meine Uralte Version unter XP gestartet. Dort finde ich beim Panel keine Paint Methode.
Ist natürlich von 2014! Weiß nicht wie es aktuell ist. Mein Versuch vorhin war CrossCompiliert.

Viele Grüße
Bernd

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

Re: Panel.Canvas, Grösse falsch ?

Beitrag von Mathias »

Was war das für eine Version von Lazarus ?
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot

Winni
Beiträge: 157
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.06, fpc 3.04
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: Panel.Canvas, Grösse falsch ?

Beitrag von Winni »

Hi!

Dacht ich mir doch.
Das hat mit der automatischen DPI Anpassung zu tun
- eine der "modernen" Unsitten von Lazarus.

Zum Einlesen:

https://wiki.freepascal.org/High_DPI/de


Winni

wennerer
Beiträge: 124
Registriert: Di 19. Mai 2015, 20:05
OS, Lazarus, FPC: Linux Mint 19.3 Cinnamon, Lazarus 2.1.0, FPC 3.3.1 ,Lazarus Stable 2.0.6,
CPU-Target: x86_64

Re: Panel.Canvas, Grösse falsch ?

Beitrag von wennerer »

Lazarus 1.2.0
FPC 2.6.2
:D
Gruß Bernd

wp_xyz
Beiträge: 3206
Registriert: Fr 8. Apr 2011, 09:01

Re: Panel.Canvas, Grösse falsch ?

Beitrag von wp_xyz »

Winni hat geschrieben:
So 17. Mai 2020, 19:43
Dacht ich mir doch.
Das hat mit der automatischen DPI Anpassung zu tun
- eine der "modernen" Unsitten von Lazarus.
Wie kommst du auf diese Behauptung? Ich arbeite mit Win@96ppi und da wird nix ge-scale-t, und trotzdem ist die Canvas-Größe gleich der Form-Größe.

Ich glaube eher, dass das mit den WidgetSets zu tun hat. Wenn ich nachverfolge, wo Canvas.Width und .Height (die es übrigens bei Delphi gar nicht gibt) eigentlich herkommen, lande ich bei der Funktion GetDeviceSize, die je nach Widgetset anders implementiert ist.

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

Re: Panel.Canvas, Grösse falsch ?

Beitrag von Mathias »

Ist es somit ein Bug ?
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot

Antworten