Announcement

Collapse
No announcement yet.

.ANI-Dateien anzeigen?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • .ANI-Dateien anzeigen?

    Hallo,

    ich probiere es nochmal: Wie kann ich einen animierten Cursordatei (.ANI) als Bild anzeigen. (NICHT als Cursor! Der Cursor soll unverändert bleiben!) Eine Cursordatei ist kein Problem (mit DrawIcon oder DrawIconEx). Mit DrawIconEx ist es auch kein Problem, ein beliebiges Frame der .ANI-Datei anzuzeigen. Aber wie animiere ich das? Wenn ich das selbst über einen Timer steuern muss: Woher kriege ich die Anzahl der Frames in der .ANI-Datei?

    Gruß Matthias

    PS: Habe ich schon irrtümlich in den VCL-Bereich gestellt. Hier ist es aber richtiger...

  • #2
    Hi

    Jo, da haste ein Problem. Es gibt keine API Funktion die das kann, auch ist das Speicherformat einer geladenen ANI-Datei NICHT bekannt. In meinem TANICursor Object habe ich es so gelöst das ich das reine Dateiformat als Image hinterlege. Dieses Format ist bekannt (RIFF) und kann ausgelesen werden. Man muß also min. zwei Werte auslesen, Framecount und JIFF's (Delays zwischen den Frames). Aus diesem Speicherdatei Image kann nun temporär eine Datei angelegt werden die mit LoadCursorFromFile() in ein ANI-Handle geladen werden kann. Nun hat man alles was man braucht um mit DrawIconEx() zu arbeiten. Global nutze ich einen Thread der für ALLE aktiven TANICursors gültig ist (das kleinste nächste Intervall wird als Sleep Time benutzt). Der Thread erhöht den FrameCounter des TANICursor Objectes und ruft ANICursor.Changed auf. Das anzeigende Control sollte auf dieses .Changed reagieren und den Cursor neu darstellen. Damit ist die Sache sogar Threadsafe und die Anzeige läuft trotzdem paralell zum MainThread. Auf jeden Fall, um es Delphi-Graphic-compatible hinzukriegen, wird einiges an Arbeit anfallen.

    Man könnte auch das ANI direkt aus der Datei lesen und jeden FRame als Icon erstellen und verwalten. Die Lösung mit der temporären Datei finde ich aber sinnvoller, da so eben auch TANICursor als normale Mauscursor UND wie TIcon/TBitmap etc. genutzt werden können.

    Gruß Hage

    Comment


    • #3
      Hallo Hagen,

      vielen Dank für die ausführliche Antwort.
      Kann man das TANICursor auch bekommen?

      Ich hasse es, das Fahrrad neu erfinden zu müssen!

      Gruß
      Matthia

      Comment


      • #4
        Nein, es ist nicht Bestandteil einer veröffentlichten Bibliothek, sondern gehört zu einem kommerziellen Produkt.

        Gruß Hage

        Comment


        • #5
          Hallo Hagen,

          schade! Nun ja, dann werde ich wohl müssen tun.
          Man gönnt sich ja sonst nix!

          Gruß
          Matthia

          Comment


          • #6
            Gibt ne Komponente dafür... Bei bedarf, mail an [email protected]

            ---www.lsamp3.de.vu--

            Comment


            • #7
              Hallo,

              vielen Dank an alle.
              Ich habe da eine ganz primitive Möglichkeit mit wenigen Zeilen<br>
              gefunden, die aber bei mir völlig ausreicht.<br>

              Gruß<br>
              Matthia

              Comment

              Working...
              X