Delphi-PRAXiS
Seite 4 von 16   « Erste     234 5614     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   AnimatePNG (https://www.delphipraxis.net/192106-animatepng.html)

EWeiss 22. Mär 2017 22:54

AW: AnimatePNG
 
Letztes Update für Heute

•- Fehler mit dem Fenster Schatten behoben.
•- Bild wird nicht mehr Skaliert wenn kleiner als der Grafik Container.

Source include.. bye
do what you want what your not want to do

gruss

Delphi-Laie 23. Mär 2017 12:43

AW: AnimatePNG
 
Funktioniert bei mir auch nicht, gleich nach dem Programmstart gibt es die Fehlermeldung "...hat ein Problem festgestellt und muß beendet werden".

Dabei habe ich die Verzeichnisstruktur komplett übernommen und lcd.ttf explizit bei Windows registriert (bzw. registrieren lassen).

EWeiss 23. Mär 2017 16:07

AW: AnimatePNG
 
Zitat:

Zitat von Delphi-Laie (Beitrag 1365280)
Funktioniert bei mir auch nicht, gleich nach dem Programmstart gibt es die Fehlermeldung "...hat ein Problem festgestellt und muß beendet werden".

Dabei habe ich die Verzeichnisstruktur komplett übernommen und lcd.ttf explizit bei Windows registriert (bzw. registrieren lassen).

Danke nur mit funktioniert nicht kann ich leider nichts anfangen trotzdem Danke.
W10?, Aero aus oder nicht vorhanden.

Aber bei mir geht es selbst mit deaktivierten Aero.
Die Anwendung wird dann nur Schwarz angezeigt.
W10. Nun kein gewähr. (Frage mich nur warum ich den QuellText hochgeladen habe wenn ihn keiner nutzt)

Siehe Pic.

gruss

HolgerX 23. Mär 2017 18:19

AW: AnimatePNG
 
Hmm..

Habe mir deinen Src mal vorgenommen..

Da ich nur Delphi 6 habe, musste ich die ganzen Regionen entfernen, deine File.. Sachen strkt auf WideString und W-Funktionen umstellen und siehe da, läst sich unter D6 kompilieren, starten und debuggen..

Erster Fehler:

Delphi-Quellcode:
procedure TAnimateGif.LoadGif;
var
  FrameDelay: TFrameDelay;
  DC: HDC;
  GuidFDT: TGUID;
begin

  gp.FrameCount := 0;

  if GetGifFrameCount(gp.GifImage[SelectedIndex], gp.FrameCount) = S_OK then
  begin
    If (gp.FrameCount - 1) = 0 then
    begin
      SetLength(FrameDelay, 0);                   // <- Hier das Array löschen

      FrameDelay[0] := 0;                         // <- Aber hier auf das erste (nicht vorhanden) Element zugreifen!
      FrameLoopCount := 0;
      LoopCount := FrameLoopCount + 1;

      CurGifPlayInfo.GifDelay := lFrameDelay[0];  // Und wo kommt das array nun schon wieder her (Ich weis GLOBAL)
      CurGifPlayInfo.GifFrame := 1;
      CurGifPlayInfo.GifFrames := gp.FrameCount;
      CurGifPlayInfo.GifLoop := LoopCount - 1;
      CurGifPlayInfo.GifLoops := FrameLoopCount;
      // Bild anzeigen
      DC := GetDC(GraphicContainer);
      DrawGifFrame(gp.GifImage[SelectedIndex], GuidFDT, ShowFrame, DC);
    end
    else
    begin
Wenn ich nun das korrigiert habe (setlength auf 1) kann ich das ganze starten.

Ich kann dann noch sehen, dass das Formular erstellt wird und das erste GIF dort angezeigt wird.
Danach erhalte ich 4 Exceptions und die App schmiert ab ;) .

Da ich auf alle deine Funktionen Haltepunkte gesetzt hatte, außer auf Result := SKAERO_DefWindowProc(WinHandle, Msg, wP, lP) da dies ja andauernd auch durch steppen immer wieder aufgerufen wird, konnte ich erkennen, dass die Exception aus deiner DLL kommen!
Alles andere läuft durch.

Zu meinem System:
Windows 8.1 Home.
Delphi 6 Prof

Da ja auch andere beim Starten direkt die Exceptions um die Ohren gehauen bekommen, gehe ich von einem Bug auf der anscheinend nur bei Dir nicht auftritt...

EWeiss 23. Mär 2017 18:34

AW: AnimatePNG
 
Zitat:

Da ja auch andere beim Starten direkt die Exceptions um die Ohren gehauen bekommen, gehe ich von einem Bug auf der anscheinend nur bei Dir nicht auftritt...
Danke für den Test. Holger :)
Wieder mal eine seltsame Sache keine Problem hier sieht man an den Bildern.

Mich würde mal interessieren welche Gif Datei du verwendest. ;)

EDIT:
Ich komme hier gar nicht rein!
Delphi-Quellcode:
If (gp.FrameCount - 1) = 0 then


Ich behaupte also das du ein Nicht animiertes GIF verwendest. (Das habe ich noch nicht probiert)
Das mal versucht ?


gruss

HolgerX 23. Mär 2017 18:52

AW: AnimatePNG
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hmm..

Wenn ich ein Animiertes GIF verwende, dann knallt es schon bei SKAERO_PaintDoubleBuffer(WinHandle, ps.HDC); in

Delphi-Quellcode:
    WM_PAINT:
      begin
        BeginPaint(WinHandle, ps);
        SKAERO_PaintDoubleBuffer(WinHandle, ps.HDC);
        EndPaint(WinHandle, ps);
        Result := 0;
        Exit;
      end;
(Fehlermeldung angehängt..)

Bei einem nicht anmierten Gif wird diese geladen und angezeigt, jedoch knallt es dann später mit einer vergleichbaren Fehlermeldung.

Diese Meldungen kann ich auch nicht durch try.. except abfangen, sollten somit aud deiner DLL kommen ;)


Edit:
Auch mit deinem Testbild knallt es bei SKAERO_PaintDoubleBuffer..
Mit Delphi 6 und dem TGifImage läst sich das Bild jedoch problemlos anzeigen...
(Hab da nen selbstgebauten PictureViewer ;) )

EWeiss 23. Mär 2017 18:57

AW: AnimatePNG
 
Seltsam aber ich kann es leider nicht nachvollziehen.
Danke.

Zitat:

Mit Delphi 6 und dem TGifImage läst sich das Bild jedoch problemlos anzeigen...
Glaube ich dir nur ich kann und möchte keine Komponente verwenden. (nonvcl)

gruss

HolgerX 23. Mär 2017 19:07

AW: AnimatePNG
 
Hmm..



Zitat:

Zitat von EWeiss (Beitrag 1365337)
Seltsam aber ich kann es leider nicht nachvollziehen.
Danke.

Zitat:

Mit Delphi 6 und dem TGifImage läst sich das Bild jedoch problemlos anzeigen...
Glaube ich dir nur ich kann und möchte keine Komponente verwenden. (nonvcl)

gruss


Schön.. Und womit lädst Du dann das Gif?
Auch GDI+ ist (entfernt) nichts anderes wie eine Komponente..

Und TGifImage kannste ja auch als Anhalt nehmen.
Brauchst dort doch nur die VCL Sachen rausschmeißen und kannst dann auch ohne VCL damit arbeiten..

Da haste alles Drinnen, um eine Gif-Datei zu laden, incl. Animated.

EWeiss 23. Mär 2017 19:12

AW: AnimatePNG
 
Zitat:

Zitat von HolgerX (Beitrag 1365339)
Hmm..



Zitat:

Zitat von EWeiss (Beitrag 1365337)
Seltsam aber ich kann es leider nicht nachvollziehen.
Danke.

Zitat:

Mit Delphi 6 und dem TGifImage läst sich das Bild jedoch problemlos anzeigen...
Glaube ich dir nur ich kann und möchte keine Komponente verwenden. (nonvcl)

gruss


Schön.. Und womit lädst Du dann das Gif?
Auch GDI+ ist (entfernt) nichts anderes wie eine Komponente..

Und TGifImage kannste ja auch als Anhalt nehmen.
Brauchst dort doch nur die VCL Sachen rausschmeißen und kannst dann auch ohne VCL damit arbeiten..

Da haste alles Drinnen, um eine Gif-Datei zu laden, incl. Animated.

GDI+ ist ein Bibliothek (DLL) hat nichts mit VCL zu tun.
Schließlich packst du dafür keine Komponente auf die Form oder?

Ich verwende die API von MS die läuft auch bei anderen sowie bei mir.

Umbauen möchte ich jetzt da nichts mehr.
Hat mich viel zeit gekostet das zu implementieren.
Meine DLL würde dir nichts nutzen in Verbindung mit D6.

Installiere 2010 dann können wir darüber reden. ;)

TGifImage basiert auf GDI zu viel Umstellungen davon etwas zu verwenden.

gruss

Delphi-Laie 23. Mär 2017 19:35

AW: AnimatePNG
 
Zitat:

Zitat von EWeiss (Beitrag 1365300)
Zitat:

Zitat von Delphi-Laie (Beitrag 1365280)
Funktioniert bei mir auch nicht, gleich nach dem Programmstart gibt es die Fehlermeldung "...hat ein Problem festgestellt und muß beendet werden".

Dabei habe ich die Verzeichnisstruktur komplett übernommen und lcd.ttf explizit bei Windows registriert (bzw. registrieren lassen).

Danke nur mit funktioniert nicht kann ich leider nichts anfangen trotzdem Danke.
W10?, Aero aus oder nicht vorhanden.

XP. Ist das zuwenig?


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:29 Uhr.
Seite 4 von 16   « Erste     234 5614     Letzte »    

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