Frage

Mit dem Design, wird die Symbolleiste Anwendung Miniaturansicht auf Vista nicht aktualisiert werden, wenn eine Anwendung minimiert wird, da die minimierten Fenster selbst sind nicht neu erstellt. Für eine Überwachungsanwendung Ich habe, wäre es sinnvoll sein, die Anwendung Thumbnail zu aktualisieren, während die Anwendung minimiert bleibt. Ich bin mit Delphi 2009. Kann mir jemand eine gute Abhilfe für dieses vorschlagen?

HMCG

War es hilfreich?

Lösung

Das ist ein interessanter, den ich denke, es mit dem Windows-API in irgendeine Weise möglich ist, ich bin im Moment nicht auf einem Vista-Rechner, aber ich denke, Windows Media Player noch das Video zeigt zu spielen, wenn minimiert wird.

Ich nehme ein Hack wäre, um die Schaltfläche minimieren außer Kraft setzen und die Form außerhalb des Bildschirms zu bewegen, dann erkennt die Form wieder aktiv zu werden und es wieder auf den alten Standort. Dies würde bedeuten, die Form aus der Sicht ist aber nicht minimiert werden.

Andere Tipps

Ich fand etwas in einem Microsoft-Entwicklungsforum , die dieses Thema anspricht. Die Frage war, über eine Möglichkeit, eine benutzerdefinierte Miniaturansicht zur Verfügung zu stellen, zu denen Microsoft Leonardo Blanco mit dieser antwortete:

  

Wir machen keine [t] Plan, ein Mittel vorzusehen, um eine Anwendung zu erstellen ein   benutzerdefinierte alternative Miniaturdarstellung, aber wir werden   bietet eine API aus dem normalen Miniaturbild entscheiden   zusammen ....

Es sieht aus wie diese Pläne haben in der Zwischenzeit geändert könnte, von der Existenz in MSDN der Funktionen zu urteilen DwmSetIconicLivePreviewBitmap und DwmSetIconicThumbnail Windows 7. Gerade jetzt diese Einträge nicht wirklich irgendwelche Erklärungen enthalten, aber ihre Namen sind vielversprechend.

Jemand wies darauf hin, dass die Miniaturansicht für Windows Media Player bewegt zeigt Video sogar, während das Fenster minimiert wird. Blanco Erklärung:

  

WMP verwendet eine neue Video-Pipeline, die direkt an den Gesprächen   [Desktop Window Manager], um eine flüssigere Wiedergabe zu erreichen   Erfahrung. Diese Pipeline basiert auf [DirectX] und nicht   hängen von Sichtbarkeit Informationsfenster, so dass die Thumbnail   kann am Leben gehalten werden, selbst wenn das Fenster minimiert wird, wie   solange die App Rahmen vorlegen wird fortgesetzt. Sie können feststellen,,   jedoch, dass die Benutzeroberfläche um das Video ist nicht mehr leben   (Dies ist schwierig zu beobachten, weil die Benutzeroberfläche um das Video   aktualisiert nicht in der Regel). Für ein bisschen mehr Informationen zu diesem Verfahren,   finden Sie in der DwmSetPresentParameters API.

Ich fürchte ich nichts mehr darüber finden. Dokumentation für DWM Funktionen ist spärlich.

die Art Ihrer Anwendung gegeben, vielleicht ist es eine Überlegung wert, einen Gadget auf der Windows Sidebar leben.

Ich weiß nicht, ob diese Abhilfe noch in Delphi 2009 funktioniert: Überschreibung CreateParams zu set GetDesktopWindow als WndParent.

Ich habe Application.Title in der Vergangenheit geändert einige Informationen in der Taskleiste Schaltfläche anzuzeigen. Ich nicht glaube, dies bewirkt, dass ein erneutes Zeichnen des Symbols?

In Delphi 2007 Ihr Hauptformular ist auf der Taskleiste, wenn Sie

  Application.MainFormOnTaskbar := True;

zu halten, zu aktualisieren, dann müssen Sie Ihre Anwendung zu verhindern, zu minimieren und stattdessen nur um es nach hinten zu bewegen. Sie können dies tun, indem Sie ein TApplicationEvents setzen auf dem Formular und Zuweisen eines Event-Handler zum OnMinimize Ereignis und rufen Sie dann Application.Restore drin. Sie wollen Ihre eigene Minimierung Zustand zu verfolgen und sicherzustellen, dass Sie alle anderen Formen verstecken (wenn Sie sie haben) und nur Ihre Hauptform sichtbar, aber auf dem niedrigsten Z-Reihenfolge, wenn es „ein Minimum reduziert.“

Ich glaube nicht, Windows Vista können Sie Formulare aus dem Bildschirm zu verschieben, oder Sie können das nur tun. Vielleicht gibt es einen Hack um die.

Viel Glück!

gehen Sie zu Ihrem Source-Projekt und ändern Application.MainFormOnTaskbar auf false: Application.MainFormOnTaskbar: = false;

Viele Grüße, Mauricio

http://sourceforge.net/projects/tcycomponents/

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top