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 Vista TAnimate AccessViolation? (https://www.delphipraxis.net/121582-vista-tanimate-accessviolation.html)

blackdrake 30. Sep 2008 20:13


Vista TAnimate AccessViolation?
 
Hallo.

Ich verwende derzeit die Ressource 256 von ShDocVw.dll, um die Download-Animation von Internet Explorer anzuzeigen.

Delphi-Quellcode:
  if DebugHook = 0 then
  begin
    // [url]http://www.delphi-treff.de/tipps/multimedia/wiki/TAnimate%20verwenden/[/url]
    try
      ani_copy.ResID := 256;
    except
    end;
    ani_copy.ResHandle := LoadLibrary('shdocvw.dll');
    ani_copy.Active := True;
  end;
Das ganze funktioniert außerhalb des Debuggers eigentlich gut, nur gibt es innerhalb des Compilers Probleme, wenn ich nicht "DebugHook = 0" setzen würde, da Delphi hier einen Bug aufweist.

Das Problem ist jetzt jedoch ein anderes: Ein Endbenutzer mit Windows Vista 32-Bit schreibt mich an, dass mein ausgeliefertes Programm nicht funktionieren würde.

Es kämen folgende Fehlermeldungen:
- AccessViolation... beim Schreiben von Addresse ...
- "AVI kann nicht geöffnet werden"

Leider habe ich kein Vista zum Testen. An dem neuen Internet Explorer 8 Beta 2 sehe ich nicht nicht, dass die AVI #256 der ShDocVw.dll dort fehlt.

Ich gehe eher davon aus, dass LoadLibrary('shdocvw.dll') die Exception auslöst. Wieso? Habe ich hier ein Problem mit der Windows "Sicherheit"? Und: Wieso funktioniert es bei anderen Vista-Endbenutzern?

Gruß
blackdrake

Bernhard Geyer 30. Sep 2008 20:55

Re: Vista TAnimate AccessViolation?
 
Ich würde mich nicht auf irgendwelche System-Animationen verlassen. So wie bei Vista die Standardanimationen nicht mehr vorhanden sind, so kann auch deine Animation irgendwann verschwinden. Besorg dir lieber eine "Standalone" und sei hier unabhängig vom OS.

blackdrake 30. Sep 2008 20:59

Re: Vista TAnimate AccessViolation?
 
Hallo. Ja, unabhängig wäre auch gut, jedoch möchte ich keine kostenpflichtigen Animationen für ein FreeWare-Programm verwenden, da die Warte-Animationen ja eher unwichtig sind. Ich würde gerne den Grund wissen, wieso LoadLibrary fehlschlagen könnte oder die Animation durch eine Public-Domain-Animation ersetzen.

Was meintest du mit, dass die Standardanimationen bei Vista nicht mehr existieren? Bedeutet das, dass TAnimate die Standard-Animationen - die es ja innerhalb des Vista-Betriebssystems ja immer noch geben müsste - bei Windows Vista nicht mehr spielen kann (was die VCL unnütz machen würde)?

Bernhard Geyer 30. Sep 2008 21:03

Re: Vista TAnimate AccessViolation?
 
Zitat:

Zitat von blackdrake
Hallo. Ja, unabhängig wäre auch gut, jedoch möchte ich keine kostenpflichtigen Animationen für ein FreeWare-Programm verwenden, da die Warte-Animationen ja eher unwichtig sind.

Gibt mit sicherheit auch ander kostenlosen Animationen. Da wir selbst GlyphFX einsetzen kenn ich die halt.
Zitat:

Zitat von blackdrake
Ich würde gerne den Grund wissen, wieso LoadLibrary fehlschlagen könnte oder die Animation durch eine Public-Domain-Animation ersetzen.

Hast du dir schon Fehlercode geben lassen bzw. GetLastError?

Zitat:

Zitat von blackdrake
Was meintest du mit, dass die Standardanimationen bei Vista nicht mehr existieren? Bedeutet das, dass TAnimate die Standard-Animationen - die es ja innerhalb des Vista-Betriebssystems ja immer noch geben müsste - bei Windows Vista nicht mehr spielen kann (was die VCL unnütz machen würde)?

Die Animationen die die VCL verwendet hat (AFAIK in der Shell.dll) gibt es nicht mehr. Ab D2007 ist das kein Problem da die VCL eigene Animationen mitliefert die stattdessen verwendet werden.


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