AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Flickern unter Visa mit Aero und wsMaximized

Ein Thema von user69 · begonnen am 5. Mai 2007 · letzter Beitrag vom 5. Mai 2007
Antwort Antwort
Seite 1 von 2  1 2      
user69

Registriert seit: 11. Dez 2004
107 Beiträge
 
#1

Flickern unter Visa mit Aero und wsMaximized

  Alt 5. Mai 2007, 11:46
Hallo,

Ich habe ein Problem unter Visa mit Aero und wsMaximized.
Dabei ist ein Flickern durch ein sehr oftes Neuzeichenen der Menus und Toolbars zu beobachten.

Also:
Ich wenn ich ein Element at runtime ändere (z.B. Position - Left oder dessen Größe - Width) werden zahlreiche Elemente, die garnicht davon betroffen sind (z.B das Menu und die Toolbars) neu gezeichnet. Das Endet in einem sehr unschönen flickern. Das tritt scheinbar bei allen Delphi Versionen (D4, D6, Turbos) auf, liegt also scheinbar nicht an meiner Version.
Das Problem tritt nur unter Vista auf, wenn Aero an ist. Außerdem muß die Anwendung im WindosSate Maximized sein. Ansonsten tritt es auch nicht auf. Die zuvor angesprochenen Elemente werde dann einfach nicht neu gezeichnet (es ist ja auch nicht notwendig) und somit flickert es nicht.

Ich habe das mal in angehängten Demo (Source und EXE) nachgestellt.

http://www.polarfire.de/menudemo.zip

Es enthält einfach ein Menu und 2 Buttons. Unter Vista mit Aero sehe ich ein Flickern des Menus wenn ich Button1 drücke.
Dieser Klick bewegt den Button 2 50 mal einen Pixel nach rechts. 50 mal habe ich gemacht, damit der Effekt einfach deutlich wird (solche Sachen treten ja real auf, da manchmal bei der Programmierung ja auch mehrere Elemente auf einmal in der Größe geändert werden müssen. Wie gesagt unter XP und Vista ohne Aero ist alles ok. Auch mit Aero funktioniert es problemlos, wenn die Anwendung nicht wsMaximized ist. Dann wird bei den entsprechenden Aktionen keine Neuzeichnen und damit das Flickern nicht ausgelöst (konnte ich sehen wenn ich in der WNDProg mal die Messages verfolge).
Das erstaunliche ist, daß dieses Neuzeichen nur bei wsMaximized auftritt und auch unter Vista mit Aero, wenn die Anwendung wsNormal und sehr groß ist nicht ausgelöst wird.

Hat dazu irgendwer Ideen oder Lösungen, wie das Flickern verhindert werden kann oder was sich als Workaround anbietet?


Beste Grüße
User69
Angehängte Dateien
Dateityp: zip menudemo_729.zip (165,6 KB, 6x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Flickern unter Visa mit Aero und wsMaximized

  Alt 5. Mai 2007, 11:48
Hast du schonmal DoubleBuffered:=True probiert?
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#3

Re: Flickern unter Visa mit Aero und wsMaximized

  Alt 5. Mai 2007, 12:00
Hallo,

verwende ein Manifest. Schon flackert es nicht mehr.

Gruß
xaromz
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat
user69

Registriert seit: 11. Dez 2004
107 Beiträge
 
#4

Re: Flickern unter Visa mit Aero und wsMaximized

  Alt 5. Mai 2007, 12:13
Danke für die Infos:

Doblebufferd hat no effekt, macht alles nur langsamer

Manifest: Nutze ich schon um XP Design zu bekommen und habe es auch schon a Vista angepaßt.
Evtl ist aber da ein Fehler drin?? (siehe unten) - ok nicht in der Demo Applikation, aber in der wo ichs am Ende brauch. Findet ihr unten einen Fehler?

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
name="3D-Tool"
processorArchitecture="x86"
version="8.0.0.1"
type="win32"/>
<description>3D-Viewer</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="x86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>

<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#5

Re: Flickern unter Visa mit Aero und wsMaximized

  Alt 5. Mai 2007, 12:20
Hallo,

in Deinem Demo-Programm ist aber kein Manifest drin.

Wenn Du eine halbwegs aktuelle Delphi-Version hast, kannst Du einfach die Unit "XPMan" einbinden. Schon hast Du ein XP-Manifest. Wenn Du Delphi 2007 hast, gibt es eine Einstellung in den Projektoptionen.
So musst Du Dich nicht mit einem eigenen Manifest rumschlagen (außer natürlich, Du brauchst spezielle Eigenschaften im Manifest).

Gruß
xaromz
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#6

Re: Flickern unter Visa mit Aero und wsMaximized

  Alt 5. Mai 2007, 12:21
Zitat von xaromz:
Hallo,
Schon hast Du ein XP-Manifest.
Braucht er nicht ein Vista Manifest?
Thomas
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#7

Re: Flickern unter Visa mit Aero und wsMaximized

  Alt 5. Mai 2007, 12:22
Hallo,
Zitat von toms:
Braucht er nicht ein Vista Manifest?
um das Flackern zu unterbinden reicht ein XP-Manifest.

Gruß
xaromz
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat
user69

Registriert seit: 11. Dez 2004
107 Beiträge
 
#8

Re: Flickern unter Visa mit Aero und wsMaximized

  Alt 5. Mai 2007, 12:32
Könnt Ihr die App mit neuen Mainifest (source und exe) mal hochladen.
Mein Manifest scheint nicht zu wirken?

Grüße
User69
  Mit Zitat antworten Zitat
user69

Registriert seit: 11. Dez 2004
107 Beiträge
 
#9

Re: Flickern unter Visa mit Aero und wsMaximized

  Alt 5. Mai 2007, 12:54
Anbei das geänderte Demo mit Manifest.
Aber: Leider keine Änderung an dem Probelm, nur die Buttons werden jetzt im Style gezeichnet. Flickern im Menu ist immer noch da.

Ist das Manifest falsch? Es enthält Vista und XP.

Grüße
User69
Angehängte Dateien
Dateityp: zip menudemo2_568.zip (159,1 KB, 6x aufgerufen)
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#10

Re: Flickern unter Visa mit Aero und wsMaximized

  Alt 5. Mai 2007, 13:55
Hallo,

jetzt bin ich verwirrt. Ich habe gerade Dein Beispielprogramm unverändert einmal mit Delphi 2006 und einmal mit Delphi 2007 compiliert. Bei Delphi 2006 flackerts, bei Delphi 2007 nicht. Die Ursache ist mir aber unbekannt.

Gruß
xaromz
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 14:49 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