Scrollen im Objectinspektor

Für Fehler in Lazarus, um diese von anderen verifizieren zu lassen.

Scrollen im Objectinspektor

Beitragvon siro » 10. Nov 2018, 16:25 Scrollen im Objectinspektor

Nach Empfehlung von wp_xyz, möchte ich hier eine BUG-Report veröffentlichen, damit es nicht in Vergessenheit gerät...

Das Problem betrifft das Scrollen im Objektinspektor:

Lazarus Windows Version V1.8.4
und, jedoch mit etwas anderem fehlerhaften Verhalten, die Windows Version Lazarus V2.0.0RC2

Hier wird der Bildschirm nicht rechtzeitig bzw. sogar nicht richtig restauriert wenn man sich in einem
Eigenschftsfeld befindet zum editieren. und den Scrollbalken bewegt.

Ich verweis mal auf meinen Thread:
https://www.lazarusforum.de/viewtopic.php?f=15&t=11876

geprüft auf 2 verschiedenen Rechnern mit Windows 10

Für Gegenmaßnahmen bedanke ich mich schon im voraus.

Siro
Grüße von Siro
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...
siro
 
Beiträge: 323
Registriert: 23. Aug 2016, 13:25
Wohnort: Berlin
OS, Lazarus, FPC: Windows 7 Windows 8.1 Windows 10 | 
CPU-Target: 64Bit
Nach oben

Beitragvon wp_xyz » 10. Nov 2018, 17:35 Re: Scrollen im Objectinspektor

Nein, das liest hier keiner von den Leuten, die das beheben können. Du musst schon im Bug-Tracker posten: https://bugs.freepascal.org/view_all_bu ... oject_id=1, und auf englisch. Falls das ein Problem ist, kann ich das auch posten, nur ich habe meinen Kopf momentan woanders, und es könnte sein, dass ich es vergesse.
wp_xyz
 
Beiträge: 2687
Registriert: 8. Apr 2011, 08:01

Beitragvon siro » 11. Nov 2018, 18:00 Re: Scrollen im Objectinspektor

Achso, das wuste und kannte ich noch garnicht, Ich dachte die Entwickler schauen auch hier ein.

Wenn Du Zeit und Lust dafür hast, wäre es nett von Dir, wenn Du es dort reinstellen würdest wp_xyz.
Ich will hier aber keine Aufgaben verteilen, das steht mir nicht zu..... :oops:

Siro
Grüße von Siro
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...
siro
 
Beiträge: 323
Registriert: 23. Aug 2016, 13:25
Wohnort: Berlin
OS, Lazarus, FPC: Windows 7 Windows 8.1 Windows 10 | 
CPU-Target: 64Bit
Nach oben

Beitragvon wp_xyz » 12. Nov 2018, 00:01 Re: Scrollen im Objectinspektor

wp_xyz
 
Beiträge: 2687
Registriert: 8. Apr 2011, 08:01

Beitragvon siro » 12. Nov 2018, 08:21 Re: Scrollen im Objectinspektor

Guten Morgen und vielen lieben Dank an wp_xyz.
Das hätte ich nie so hinbekommen.

Siro
Grüße von Siro
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...
siro
 
Beiträge: 323
Registriert: 23. Aug 2016, 13:25
Wohnort: Berlin
OS, Lazarus, FPC: Windows 7 Windows 8.1 Windows 10 | 
CPU-Target: 64Bit
Nach oben

Beitragvon martin_frb » 19. Nov 2018, 13:27 Re: Scrollen im Objectinspektor

Bitte mal mit Trunk r59604 testen.
Probleme/Konfirmation bitte hier https://bugs.freepascal.org/view.php?id=34539
martin_frb
 
Beiträge: 407
Registriert: 25. Mär 2009, 21:12
OS, Lazarus, FPC: Laz trunk / fpc latest release / Win and other | 
CPU-Target: mostly 32 bit
Nach oben

Beitragvon wp_xyz » 19. Nov 2018, 13:42 Re: Scrollen im Objectinspektor

Danke, Martin, scheint zu funktionieren. Nur bei sehr schnellem Scrollen verschwindet manchmal der PropertyEditor, aber das ist tolerierbar im Vergleich zum Zustand vorher.
wp_xyz
 
Beiträge: 2687
Registriert: 8. Apr 2011, 08:01

Beitragvon martin_frb » 19. Nov 2018, 17:28 Re: Scrollen im Objectinspektor

wp_xyz hat geschrieben:Danke, Martin, scheint zu funktionieren. Nur bei sehr schnellem Scrollen verschwindet manchmal der PropertyEditor, aber das ist tolerierbar im Vergleich zum Zustand vorher.


Verschwindet dauerhaft, oder temporär? Welches Windows? 10,8,7,...
martin_frb
 
Beiträge: 407
Registriert: 25. Mär 2009, 21:12
OS, Lazarus, FPC: Laz trunk / fpc latest release / Win and other | 
CPU-Target: mostly 32 bit
Nach oben

Beitragvon wp_xyz » 19. Nov 2018, 18:11 Re: Scrollen im Objectinspektor

Sowohl Win10 als auch Win7 zeigen den Effekt (zu Win8 habe ich keinen Zugang).

Ist etwas schwer zu reproduzieren, ich habe das Gefühl es hängt davon ab, wie sehr die Maschine anderweitig beschäftigt ist. Aber ich glaube jetzt, der Begriff "Verschwinden" ist falsch, besser wäre "Auftaucnen". Ich meine, es jetzt gut zu sehen, wenn ich die Zelle mit dem Property-Editor nach oben aus dem sichtbaren Fenster des OI scrolle, dann den Rollbalken schnell herunterziehe; während des Scrollens ist, wenn dann der Property-Editor wieder ins Fenster kommt, die der blaue Text-Hintergrund nicht zu sehen, er kommt erst dann, wenn der Rollbalken steht.

Während des Scrollens habe ich immer wieder den Eindruck, dass nicht alles in einem Guss (so wie ein gescrolltes Bitmap) gezeichnet wird, sondern dass der Property-Editor erst im Nachhinein auf das gescrollte Grid gezeichnet wird, weil der Property-Editor etwas auf- und abzittert. Delphi hat das nicht: hier bewegt sich das Grid des Objekt-Inspektor zusammen mit den Property-Editor absolut synchron. Hat das vielleicht mit Double-Buffering zu tun? Ich behaupte mal, das trat zum ersten Mal auf, als Ondrej die große Änderung mit dem Double-Buffering gemacht hat.

In dem Zusammenhang gibt es noch ein zweites ähnliches Problem: Wenn man den Splitter zwischen ObjectTree und ObjectInspektor schnell auf- und abbewegt, gibt es nichts als Ausgabereste - siehe Screenshot. Genauso wieder bei Win10 und Win7, vorübergehend während des Scrollens, verschwindet wieder, wenn der Rollbalken angehalten wird. Ich habe noch ein Laz 1.0 auf der Platte, da sieht man den Fehler auch schon. Ich wollte sehen, ob Delphi das auch macht, aber die schalten den Splitter in den rsLine oder rsPattern ResizeStyle, so dass während des Scrollens gar kein Neuzeichnen stattfindet.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
wp_xyz
 
Beiträge: 2687
Registriert: 8. Apr 2011, 08:01

Beitragvon martin_frb » 19. Nov 2018, 20:12 Re: Scrollen im Objectinspektor

wp_xyz hat geschrieben:Sowohl Win10 als auch Win7 zeigen den Effekt (zu Win8 habe ich keinen Zugang).
wenn ich die Zelle mit dem Property-Editor nach oben aus dem sichtbaren Fenster des OI scrolle, dann den Rollbalken schnell herunterziehe; während des Scrollens ist, wenn dann der Property-Editor wieder ins Fenster kommt, die der blaue Text-Hintergrund nicht zu sehen, er kommt erst dann, wenn der Rollbalken steht.

Korrekt. In diesem Falle funktioniert ScrollWindowEx nicht vollständig.
Siehe im Bug den Kommentar bzgl: DeferWindowPos.

Im Moment sendet die IDE die neue Pos einfach hinterher selber. Daher die Verzögerung.

Während des Scrollens habe ich immer wieder den Eindruck, dass nicht alles in einem Guss (so wie ein gescrolltes Bitmap) gezeichnet wird, sondern dass der Property-Editor erst im Nachhinein auf das gescrollte Grid gezeichnet wird, weil der Property-Editor etwas auf- und abzittert.

Ja, eigentlich sollte das mit ScrollWindowEx ja nicht passieren. Ist aber auf jeden Fall mit ScrollWindowEx weniger als mit Invalidate.

Müsste man den gesamten message Austausch zwischen IDE und Windows debuggen....

In dem Zusammenhang gibt es noch ein zweites ähnliches Problem: Wenn man den Splitter zwischen ObjectTree und ObjectInspektor schnell auf- und abbewegt, gibt es nichts als Ausgabereste - siehe Screenshot. Genauso wieder bei Win10 und Win7, vorübergehend während des Scrollens, verschwindet wieder, wenn der Rollbalken angehalten wird. Ich habe noch ein Laz 1.0 auf der Platte, da sieht man den Fehler auch schon. Ich wollte sehen, ob Delphi das auch macht, aber die schalten den Splitter in den rsLine oder rsPattern ResizeStyle, so dass während des Scrollens gar kein Neuzeichnen stattfindet.

Ganz anderer Fall.
Hier werden beide Komponenten verschoben, und resized (kein scrolling). Da müsste die LCL/Interface DeferWindowPos lernen. Oder eine andere Möglichkeit ein Parent mit allen Children zu bewegen.
martin_frb
 
Beiträge: 407
Registriert: 25. Mär 2009, 21:12
OS, Lazarus, FPC: Laz trunk / fpc latest release / Win and other | 
CPU-Target: mostly 32 bit
Nach oben

Beitragvon siro » 20. Nov 2018, 10:25 Re: Scrollen im Objectinspektor

Invalidate ist oftmals SEHR langsam, wenn ich sofortige Reaktion haben möchte nutze ich Refresh.
Ich vermute dass hier das Problem herrührt ?

Ich hab in fast allen meinen Komponenten Invalidate durch Refresh ersetzt sonst hinkten die Zeichenoperation ständig hinterher....
Mit ScrollWindowEx hatte ich damals auch Probleme, ich bin grad am Suchen, find das irgendwie nicht mehr. :roll:
Grüße von Siro
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...
siro
 
Beiträge: 323
Registriert: 23. Aug 2016, 13:25
Wohnort: Berlin
OS, Lazarus, FPC: Windows 7 Windows 8.1 Windows 10 | 
CPU-Target: 64Bit
Nach oben

Beitragvon martin_frb » 20. Nov 2018, 12:54 Re: Scrollen im Objectinspektor

Das Problem ist in diesem Falle nicht ScrollWindowEx, sondern eine Kombination aus verschieden anderen Sachen.

RePaint brauch genau soviel Zeit wie Invalidate. RePaint wird nur zeitnah ausgefuehrt, dafuer werden dann andere Dinge nach hinten verschoben...

Zum testen, patch attached.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
martin_frb
 
Beiträge: 407
Registriert: 25. Mär 2009, 21:12
OS, Lazarus, FPC: Laz trunk / fpc latest release / Win and other | 
CPU-Target: mostly 32 bit
Nach oben

• Themenende •

Zurück zu Lazarus - Bugs



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

porpoises-institution
accuracy-worried