Paintbox Canvas Verschiebung unter Linux (gtk2)

Paintbox Canvas Verschiebung unter Linux (gtk2)

Beitragvon Warf » 27. Jun 2018, 19:12 Paintbox Canvas Verschiebung unter Linux (gtk2)

Hey mir ist grade was seltsames aufgefallen, manche Canvas operationen funktionieren unter GTK2 nicht richtig.

Szenario: Paintbox Align: Client, TreeView Align: Left.
Paintbox Onpaint:
Code: Alles auswählen
 
var
  C: TPoint;
begin
  C:=Point(PaintBox1.Width div 2, PaintBox1.Height div 2);
  PaintBox1.Canvas.Brush.Color:=clGreen;
  PaintBox1.Canvas.Brush.Style:=bsSolid;
  PaintBox1.Canvas.pen.Style:=psClear;
  PaintBox1.Canvas.Polygon([Point(C.x-50, c.y-50),Point(C.x+50, c.y-50),Point(C.x+50, c.y+50),Point(C.x-50, c.y+50)]);
  PaintBox1.Canvas.pen.Color:=clred;
  PaintBox1.Canvas.Brush.Style:=bsClear;
  PaintBox1.Canvas.pen.Style:=psSolid;
  PaintBox1.Canvas.Rectangle(C.x-50, C.y-50, c.x+50, C.y+50);     


Ergebnis:
Bild

Unter windows überlappen die beiden perfekt (wie ich es auch erwarten würde).

Daher die Frage, Bug oder Feature

PS: Lazarus 1.8.4 OpenSuse Tumbleweed
Warf
 
Beiträge: 961
Registriert: 23. Sep 2014, 16:46
Wohnort: Aachen
OS, Lazarus, FPC: Mac OSX 10.11 | Win 10 | FPC 3.0.0 | L trunk | 
CPU-Target: x86_64, i368, ARM
Nach oben

Beitragvon shokwave » 27. Jun 2018, 20:39 Re: Paintbox Canvas Verschiebung unter Linux (gtk2)

Definitiv ein Feature! Sieht besonders cool aus, wenn du noch einen Splitter dazu packst. 8)

Kann das Verhalten unter Ubuntu Budgie 18.04 x64 mit Lazarus trunk r58416 bestätigen.
Polygon scheint sich auf die Koordinaten der Form und nicht der Paintbox zu beziehen. Ein Fall für den Bugtracker!
mfg Ingo
shokwave
 
Beiträge: 420
Registriert: 15. Nov 2007, 16:58
Wohnort: Rudolstadt
OS, Lazarus, FPC: Win10 (L 1.6 FPC 3.0.0) | 
CPU-Target: i386,x64
Nach oben

Beitragvon Michl » 27. Jun 2018, 20:39 Re: Paintbox Canvas Verschiebung unter Linux (gtk2)

Ja das ist ein Bug in GTK2 (sehe ich hier auch: Lazarus Trunk Revision 58256, Mint Cinnamon 18.3).

Win32 (Windows 7) sowie GTK3 und Qt (Mint Cinnamon 18.3) funktionieren.
Code: Alles auswählen
type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 
Michl
 
Beiträge: 2260
Registriert: 19. Jun 2012, 11:54
OS, Lazarus, FPC: Win7 Laz 1.7 Trunk FPC 3.1.1 Trunk | 
CPU-Target: 32Bit/64bit
Nach oben

Beitragvon Erwin » 27. Jun 2018, 21:07 Re: Paintbox Canvas Verschiebung unter Linux (gtk2)

Ich habe es auch mal probiert. Allerdings nutze ich ja Xubuntu, das hat die Xfce-Oberfläche.
Außerdem fand ich 'TreeView' nicht, um es auf 'Align: Left' einzustellen. (Erwähnt für denn Fall, das dies der Grund für ein anderes Ergebnis sein sollte.)

Bei mir ist es fast ganz überlappend gewesen. Genauer gesagt: Rechts und Unten war ein schwarzer Strich. Was aber kein Wunder ist. Weil beim Polygon werden die Exakten Koordinaten genutzt, während beim Rechteck (also Rectangle) die zweiten Koordinaten ja um eins kürzer sind.
Win 7 / Lazarus 1.6 / FP 3.0.0 / x86_64-win64-win32/win64
Erwin
 
Beiträge: 216
Registriert: 16. Sep 2009, 13:15
OS, Lazarus, FPC: Xubuntu 16.04 / x86_64_linux-gtk 2 / L 1.6+dfsg-1 / FPC 3.0.0 | 
Nach oben

Beitragvon Mathias » 27. Jun 2018, 21:15 Re: Paintbox Canvas Verschiebung unter Linux (gtk2)

Hier wurde mir mal gesagt, das die PaintBox sowieso veraltet sei.
viewtopic.php?f=18&t=9464&p=83505&hilit=paintbox#p83505
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4250
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon shokwave » 27. Jun 2018, 21:17 Re: Paintbox Canvas Verschiebung unter Linux (gtk2)

@Erwin: Du kannst auch eine andere Komponente(z.B. ein TPanel) benutzen, um den Effekt zu sehen.
mfg Ingo
shokwave
 
Beiträge: 420
Registriert: 15. Nov 2007, 16:58
Wohnort: Rudolstadt
OS, Lazarus, FPC: Win10 (L 1.6 FPC 3.0.0) | 
CPU-Target: i386,x64
Nach oben

Beitragvon Warf » 27. Jun 2018, 22:53 Re: Paintbox Canvas Verschiebung unter Linux (gtk2)

Gibt es eine Möglichkeit zu überprüfen welches Widgetset verwendet wird (Compilerswitch reicht schon)?

Polygon scheint sich auf die Koordinaten der Form und nicht der Paintbox zu beziehen.


Nicht mal, anscheinend nur vom Parent abhängig
Warf
 
Beiträge: 961
Registriert: 23. Sep 2014, 16:46
Wohnort: Aachen
OS, Lazarus, FPC: Mac OSX 10.11 | Win 10 | FPC 3.0.0 | L trunk | 
CPU-Target: x86_64, i368, ARM
Nach oben

Beitragvon Erwin » 28. Jun 2018, 12:38 Re: Paintbox Canvas Verschiebung unter Linux (gtk2)

shokwave hat geschrieben:@Erwin: Du kannst auch eine andere Komponente(z.B. ein TPanel) benutzen, um den Effekt zu sehen.

So war das mit dem TreeView gemeint?
Ok, jetzt ist es auch bei mir nebeneinander.

Fragt sich jetzt nur noch, welchem Bugtraker man das melden muss?
Dem vom Lazarus/FPC? (anderseits, da es unter Win geht, ...)
Dem von Linux?
Dem vom Windows und Lazarus/FCP (weil es sich nicht überlappen sollte?)?
Oder gar Lazarus/FPC und Linux?
Win 7 / Lazarus 1.6 / FP 3.0.0 / x86_64-win64-win32/win64
Erwin
 
Beiträge: 216
Registriert: 16. Sep 2009, 13:15
OS, Lazarus, FPC: Xubuntu 16.04 / x86_64_linux-gtk 2 / L 1.6+dfsg-1 / FPC 3.0.0 | 
Nach oben

Beitragvon shokwave » 28. Jun 2018, 16:38 Re: Paintbox Canvas Verschiebung unter Linux (gtk2)

Erwin hat geschrieben:
shokwave hat geschrieben:@Erwin: Du kannst auch eine andere Komponente(z.B. ein TPanel) benutzen, um den Effekt zu sehen.

So war das mit dem TreeView gemeint?
Ok, jetzt ist es auch bei mir nebeneinander.
Genau, dass hatte ich gemeint. Hab es ein wenig schwammig formuliert. Sorry.
Erwin hat geschrieben:Fragt sich jetzt nur noch, welchem Bugtraker man das melden muss?

Das sieht mir nach Lazarus/LCL aus, da Rectangle ja korrekt arbeitet.
mfg Ingo
shokwave
 
Beiträge: 420
Registriert: 15. Nov 2007, 16:58
Wohnort: Rudolstadt
OS, Lazarus, FPC: Win10 (L 1.6 FPC 3.0.0) | 
CPU-Target: i386,x64
Nach oben

Beitragvon Warf » 28. Jun 2018, 18:53 Re: Paintbox Canvas Verschiebung unter Linux (gtk2)

Hab rausgefunden, den Effekt hat man nicht nur bei Canvas.Polygon sondern auch Canvas.Pie. Wahrscheinlich ist einfach irgendeine unterliegende Methode broken, eventuell sind noch mehr Funktionen betroffen.
Warf
 
Beiträge: 961
Registriert: 23. Sep 2014, 16:46
Wohnort: Aachen
OS, Lazarus, FPC: Mac OSX 10.11 | Win 10 | FPC 3.0.0 | L trunk | 
CPU-Target: x86_64, i368, ARM
Nach oben

Beitragvon Erwin » 28. Jun 2018, 20:21 Re: Paintbox Canvas Verschiebung unter Linux (gtk2)

So viel zu Plattformunabhängigkeit.
Klar kann man sagen, Lazrarus/FPC oder LCL ist schuld dran. Aber anderseits darf man nicht vergessen, dass auch BS (besonders gern Windows) gerne ihre eigenen Standards macht, und dadurch unnötig an jedes System einzeln angepasst werden muss. Als Beispiel fällt mir das mit den Buttons ein. Die Buttons können schon seit der vorletzten (?) Win-Version nicht mehr Farbig angezeigt werden, weil die von MS da was geändert haben.
Win 7 / Lazarus 1.6 / FP 3.0.0 / x86_64-win64-win32/win64
Erwin
 
Beiträge: 216
Registriert: 16. Sep 2009, 13:15
OS, Lazarus, FPC: Xubuntu 16.04 / x86_64_linux-gtk 2 / L 1.6+dfsg-1 / FPC 3.0.0 | 
Nach oben

• Themenende •

Zurück zu Linux



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

porpoises-institution
accuracy-worried