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/)
-   -   Delphi Wie funktionieren animierte Windows/VCL componennten? (https://www.delphipraxis.net/165295-wie-funktionieren-animierte-windows-vcl-componennten.html)

Memnarch 22. Dez 2011 10:57

Wie funktionieren animierte Windows/VCL componennten?
 
Hallo allerseits.
In windows 7 gibt es ja so einige Oberflächen effekte. Z.B. die blaue farbe von Buttons bleicht langsam aus, wenn man den button mit der maus verlässt und verschwindet nicht plötzlich. Das erfordert natürlich ein regelmässiges neuzeichnen.

In der Delphi7 IDE z.B. sind natürlich sachen wie scrollbars auch im Win7 style, mit den dazugehörigen effekten. Was machen diese komponennten jetzt um das regelmässige neuzeichnen zu triggern. Schmeißen die sich einfach nach jedem zeichnen erneut hinten in die messageloop bis sie fertig sind, oder wie wird das gehandhabt?

MFG

Memnarch

Bernhard Geyer 22. Dez 2011 11:00

AW: Wie funktionieren animierte Windows/VCL componennten?
 
Solange du keine eigenes Theming aktivierst (ElPack und Co. oder XE2 + VCLThemes) macht das Windows für dich (bzw. den Kompos).

Memnarch 22. Dez 2011 11:08

AW: Wie funktionieren animierte Windows/VCL componennten?
 
JA, nur WIE?

Zeichnet windows einfach da wo die Komponennte auf der VCL sitzt ohne das die VCL selbst was mitbekommt? Schmeißt windows regelmässig dafür etwas in die MessageLoop?

Hintergrund ist, dass ich mal nen kleinen Button mit der animation drauf machen möchte wenn der Cursor drübergeht. Problem ist halt die animation, will halt die applikation nicht blockieren und auf drumherum wie timer verzichten.

Luckie 22. Dez 2011 11:15

AW: Wie funktionieren animierte Windows/VCL componennten?
 
So lange du keine Skins verwendet, zeichnet doch Windows sowieso alles (OK, es gibt Ausnahmen wie TLable, aber ich gehe jetzt mal nur von Windows eigenen Steuerelementen aus.) für dich:
Delphi-Quellcode:
CreateWindowEx(.., BUTTON, .., breite, hoehe, links, oben, ..)
Damit sagst du doch Windows nur: "Bitte zeichne mir an die und die Stelle einen Fenster vom Stil einer Schaltfläche mit der und der Abmessung."
Deine Anwendung/Fenster ist in das Zeichnen nicht mehr involviert, das macht Windows intern selber.

Memnarch 22. Dez 2011 11:19

AW: Wie funktionieren animierte Windows/VCL componennten?
 
@Luckie: ok, das heißt die VCL weiß eigentlich gar nicht mehr was vor sich geht und bekommt davon auch nichts mit?


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:37 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