AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Wie funktionieren animierte Windows/VCL componennten?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie funktionieren animierte Windows/VCL componennten?

Ein Thema von Memnarch · begonnen am 22. Dez 2011 · letzter Beitrag vom 22. Dez 2011
Antwort Antwort
Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#1

Wie funktionieren animierte Windows/VCL componennten?

  Alt 22. Dez 2011, 11:57
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
Da man Trunc nicht auf einen Integer anwenden kann, muss dieser zuerst in eine Float kopiert werden
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Wie funktionieren animierte Windows/VCL componennten?

  Alt 22. Dez 2011, 12:00
Solange du keine eigenes Theming aktivierst (ElPack und Co. oder XE2 + VCLThemes) macht das Windows für dich (bzw. den Kompos).
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#3

AW: Wie funktionieren animierte Windows/VCL componennten?

  Alt 22. Dez 2011, 12:08
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.
Da man Trunc nicht auf einen Integer anwenden kann, muss dieser zuerst in eine Float kopiert werden
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

AW: Wie funktionieren animierte Windows/VCL componennten?

  Alt 22. Dez 2011, 12:15
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:
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.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#5

AW: Wie funktionieren animierte Windows/VCL componennten?

  Alt 22. Dez 2011, 12:19
@Luckie: ok, das heißt die VCL weiß eigentlich gar nicht mehr was vor sich geht und bekommt davon auch nichts mit?
Da man Trunc nicht auf einen Integer anwenden kann, muss dieser zuerst in eine Float kopiert werden
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:05 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