Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Generelle Frage Panel "smooth" einblenden (https://www.delphipraxis.net/203978-generelle-frage-panel-smooth-einblenden.html)

DieDolly 12. Apr 2020 13:51


Generelle Frage Panel "smooth" einblenden
 
Wie bekommen manche Programme, wie der Wireshark, es eigentlich hin, Panels so sanft und flüssig einzuböenden?
Im Wireshark ist es das Panel unterhalb der Toolbar. Es lässt isch mit dem kleinen + ganz rechts einfahren.

Wenn ich das mit einem Panel mache auf dem 2 Labels und ein paar CheckBoxen sind, flackert es nur so. Egal ob DoubleBuffered oder nicht.

hhcm 12. Apr 2020 14:37

AW: Generelle Frage Panel "smooth" einblenden
 
Kann ich jetzt nicht nachvollziehen. Auch ohne DoubleBuffered wird das Panel sofort angezeigt (ohne Ruckeln und Flackern)
Hast du mal nen Testprojekt?

DieDolly 12. Apr 2020 14:54

AW: Generelle Frage Panel "smooth" einblenden
 
Bau mal das nach was Wireshark drin hat. Es geht nicht hier drum einfach Visible auf true und false zu setzen.
Alle Komponenten mit Align Right damit die mit dem Panel zusammen verschwinden.

hhcm 12. Apr 2020 15:29

AW: Generelle Frage Panel "smooth" einblenden
 
Versteh ich jetzt nicht

Zitat:

Wenn ich das mit einem Panel mache auf dem 2 Labels und ein paar CheckBoxen sind, flackert es nur so. Egal ob DoubleBuffered oder nicht.
Hab ich auch gemacht, da flackert nichts. Ob Aligned oder nicht !

Uwe Raabe 12. Apr 2020 15:58

AW: Generelle Frage Panel "smooth" einblenden
 
Ich vermute, es geht um das Slide-In?

DieDolly 12. Apr 2020 16:33

AW: Generelle Frage Panel "smooth" einblenden
 
Genau darum geht es.

Uwe Raabe 12. Apr 2020 17:11

AW: Generelle Frage Panel "smooth" einblenden
 
Und wie hast du das aktuell implementiert?

DieDolly 12. Apr 2020 17:19

AW: Generelle Frage Panel "smooth" einblenden
 
Auf der Form ein Panel. Auf dem Panel eine ScrollBox und auf der Scrollbox ein paar Komponenten.
Alle Komponenten haben akRight und akBottom als Anchor. Damit werden die Komponenten aus dem Bild verschoben, wenn ich dass Panel in der Breite gegen 0 setze.
Ich mache das über eine Schleife die einfach immer 1 runter oder raufzählt, bis Min oder Max erreicht ist.

Es flackert aber nicht, wenn ich die Anchors auf Standard lasse und die Komponenten sich nicht bewegen.

Uwe Raabe 12. Apr 2020 17:24

AW: Generelle Frage Panel "smooth" einblenden
 
Liste der Anhänge anzeigen (Anzahl: 1)
Das geht auch einfacher mit AnimateWindow. Ich habe mal ein simples Projekt als Beispiel angehängt.

DieDolly 12. Apr 2020 17:33

AW: Generelle Frage Panel "smooth" einblenden
 
Das ruckelt und zuckelt bei mir unglaublich.
Ich habe das als GIF-Animation mal aufgenommen. Das von Wireshark habe ich auch aufgenommen. Es ist sehr leichtgängig und kein Flickern. Alle Controls unter diesem Panel laufen auch leichtgängig mit.

32 KB maximal für ein GIF hier. Deswegen extern:

https://cdn.discordapp.com/attachmen...63831644/1.gif

und

https://cdn.discordapp.com/attachmen...24795758/2.gif

Der schöne Günther 13. Apr 2020 18:21

AW: Generelle Frage Panel "smooth" einblenden
 
Ich hätte die Grafik jetzt gerne gesehen, bekomme aber nur eine Fehlermeldung
Zitat:

Anonymous caller does not have storage.objects.get access to discord/attachments/427108528956637184/698933719024795758/2.gif
.

Versuch doch vielleicht mal imgur.com als Bilder-Host.

Solange ich die Bilder noch nicht gesehen habe, kann ich nur raten was gemeint ist. Ich kann nur sagen in unseren Anwendungen (Kiosk-Anwendungen) verwenden wir an ein paar Stellen tatsächlich das gute alte
Delphi-Quellcode:
AnimateWindow(..)
, ansonsten tut der
Delphi-Quellcode:
TSplitView
aus Delphi auch gute Dienste.

DieDolly 13. Apr 2020 18:43

AW: Generelle Frage Panel "smooth" einblenden
 
https://imgur.com/a/gVGIGav

Beim oberen Bild besonders auf das Label und die Checkbox achten. Das hat nix mit AnimateWindow zu tun. Das passiert bei mir auch ohne AnimateWindow manuell mit einer Schleife oder sowas.
Bei Wireshark sieht das alles super gut aus.

haentschman 14. Apr 2020 05:20

AW: Generelle Frage Panel "smooth" einblenden
 
Moin...:P
Zitat:

Versuch doch vielleicht mal imgur.com als Bilder-Host.
...wieso nicht hier anhängen, sondern "obscure" Plattformen benutzen? :gruebel:
Fazit für die DP:
Alles was nicht Bild ist, in ein ZIP...fertsch. Und alles ist beieinander. :thumb:

DieDolly 14. Apr 2020 08:08

AW: Generelle Frage Panel "smooth" einblenden
 
Zitat:

...wieso nicht hier anhängen, sondern "obscure" Plattformen benutzen?
Weil die DP bei GIFs nur 32 KB erlaubt.

haentschman 14. Apr 2020 09:06

AW: Generelle Frage Panel "smooth" einblenden
 
Zitat:

Weil die DP bei GIFs nur 32 KB erlaubt.
...wo ist das Problem aus dem GIF ein ZIP zu machen? Aber es hängt am Beitrag dran und ist immer verfügbar auch wenn die Plattform den Geist aufgibt. :roll:

DieDolly 14. Apr 2020 09:13

AW: Generelle Frage Panel "smooth" einblenden
 
Zitat:

...wo ist das Problem aus dem GIF ein ZIP zu machen?
Wer hat denn bitte Lust sich ein ZIP runterzuladen, es zu entpacken und dann noch das GIF zu öffnen?
Ich verstehe nicht welches Problem du mit imgur hast.

haentschman 14. Apr 2020 09:18

AW: Generelle Frage Panel "smooth" einblenden
 
Zitat:

Ich verstehe nicht welches Problem du mit imgur hast.
...das Problem ist, das die Daten oder Bilder, außerhalb vom DP Server liegen, das Daniel keinen Einfluß darauf hat und die Bilder vom externe Hoster gelöscht werden können und damit die Beiträge nicht vollständig sind. :roll:

DieDolly 14. Apr 2020 09:20

AW: Generelle Frage Panel "smooth" einblenden
 
Bis das Bild dort gelöscht wird, hat dieser Thread keine Relevanz mehr. Jetzt wird der Thread hier wieder künstlich aufgeblasen und das Problem geht unter... das liebe ich ja.
Jetzt bitte zurück zum Thema.

himitsu 14. Apr 2020 09:23

AW: Generelle Frage Panel "smooth" einblenden
 
Ja neee, wenn also in zwei Jahren jemand das selbe Problem hat und den Thread findet, dann ist der bestimmt auch deiner Meinung und freut sich nichts zu finden. :stupid:


Nja, auch wenn ich eigentlich nicht viel von DoubleBuffered halte, so ist das genau für solche Dinge gedacht, wo viele Dinge aufwändig gemalt/verschoben/resized/ein-/ausgeblendet/... werden müssen.

Uwe Raabe 14. Apr 2020 09:32

AW: Generelle Frage Panel "smooth" einblenden
 
Zitat:

Zitat von DieDolly (Beitrag 1461953)
Bei Wireshark sieht das alles super gut aus.

Nur so'ne Vermutung: Es könnte daran liegen, daß Wireshark vielleicht GDI+ verwendet und die VCL eben nicht.

dummzeuch 14. Apr 2020 09:36

AW: Generelle Frage Panel "smooth" einblenden
 
Vielleicht hilft das:

How to temporarily stop a control from being paint? - StackOverflow

DieDolly 14. Apr 2020 10:01

AW: Generelle Frage Panel "smooth" einblenden
 
Wenn das stimmt, dann ist das ja geklärt. Das klingt auch tatsächlich logisch irgendwie.

Der schöne Günther 14. Apr 2020 14:11

AW: Generelle Frage Panel "smooth" einblenden
 
Für das Label hätte ich spontan noch die Idee gehabt statt eines TLabel ein TStaticWindowText (oder wie das heißt) zu nehmen. Denn letzteres ist ein echtes TWinControl, während ein Label irgendwie durch ein paar Hulla-Hupp-Reifen springt um den Text direkt auf den Canvas seines Parent-Elements zu malen. Und da scheint ja irgendetwas schief zu laufen.

DieDolly 14. Apr 2020 18:05

AW: Generelle Frage Panel "smooth" einblenden
 
Ich hätte eine andere, ganz böse Idee :lol:
Auf die entsprechende Region ein leeres TImage legen. Bei Bedarf einen Screenshot machen, das TImage füllen und dann die Animation starten.
Ist aber viel Aufwand für nichts. Außerdem würde das sicherlich einige Zeit dauern.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:44 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz