Delphi-PRAXiS
Seite 3 von 3     123   

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/)
-   -   Animierte Image Button (https://www.delphipraxis.net/169895-animierte-image-button.html)

EWeiss 22. Aug 2012 01:30

AW: Animierte Image Button
 
Nochmal ein kleines Update..

Danke für das Testen
Müßte jetzt eigentlich in Ordnung sein.
Ein paar Skins addiert deshalb etwas größer.

gruss

DeddyH 22. Aug 2012 07:11

AW: Animierte Image Button
 
Das sieht ganz gut aus, allerdings fallen immer noch 2 Dinge auf:
- das Flackern beim "Zurückspulen" auf den ersten Frame ist immer noch vorhanden
- ein Bewegen der Maus hält die Animation an (das dürfte am Timer liegen)

Sofern das einmal etwas Größeres werden soll, könnte man evtl. einen Thread in Betracht ziehen, oder? Damit sollte zumindest der 2. Punkt keine Rolle mehr spielen.

EWeiss 22. Aug 2012 07:14

AW: Animierte Image Button
 
Zitat:

Sofern das einmal etwas Größeres werden soll, könnte man evtl. einen Thread in Betracht ziehen, oder? Damit sollte zumindest der 2. Punkt keine Rolle mehr spielen.
Dem stimme ich zu. ;)
Ist ja ein teil meiner SkinEngine "ImageButton" erweitert
von daher kann es immer mal wieder vorkommen das ich etwas in dieser art verwenden möchte.

Zitat:

das Flackern beim "Zurückspulen" auf den ersten Frame ist immer noch vorhanden
Ist ein part des Design müßte da also die Animation nur erweitern.

OK werde den Anhang wieder löschen..
Später geht es ja nicht mehr.

gruss

EWeiss 23. Aug 2012 00:39

AW: Animierte Image Button
 
Zitat:

- das Flackern beim "Zurückspulen" auf den ersten Frame ist immer noch vorhanden
- ein Bewegen der Maus hält die Animation an (das dürfte am Timer liegen)
Die gemeldeten Fehler sollten jetzt behoben sein.
Detlef .. aber ohne Thread :oops:

Die Tranparente Edit ist noch nicht fertig.

Da fehlen noch Messagen.
ContexMenu, Texteingabe usw.. Die Subclass verweigert mir den zugriff darauf.
Werde wohl alle diese Funktionen noch selbst implementieren müssen.

gruss

DeddyH 23. Aug 2012 07:33

AW: Animierte Image Button
 
Japp, das ist viel besser. Ob mit oder ohne Thread bleibt letztlich Dir überlassen, das war nur ein Vorschlag. Ich will ja niemandem vorschreiben, wie er was zu programmieren hat.

alphaflight83 23. Aug 2012 07:51

AW: Animierte Image Button
 
Gerade mal ausprobiert:
- Flackern ist ab und an noch zu sehen.
- Bei Klick-Halten auf einen der Buttons, Stopp der Animation.
(Ich denke mal der Strobo-Effekt beim Klick ist gewollt)
(Win7 32bit)

EWeiss 23. Aug 2012 08:20

AW: Animierte Image Button
 
Zitat:

Zitat von alphaflight83 (Beitrag 1179452)
Gerade mal ausprobiert:
- Flackern ist ab und an noch zu sehen.
- Bei Klick-Halten auf einen der Buttons, Stopp der Animation.
(Ich denke mal der Strobo-Effekt beim Klick ist gewollt)
(Win7 32bit)

Jo der ist ja abhängig vom image.

Die Animation selbst kann ja variabel programmiert werden.
Ich aktiviere die Animation bei WM_MOUSEMOVE
Alternativ könnte man auch so vorgehen das man im MouseMove Event das erste Frame im Strip anzeigt.
Und im MouseDown ereignis anschließend die Animation startet welche dann einmal das strip durchläuft

Es ging mir mal um die grundfunkionen wo ich sehen wollte ob die auch wo anders gut laufen.

Zitat:

Japp, das ist viel besser. Ob mit oder ohne Thread bleibt letztlich Dir überlassen, das war nur ein Vorschlag. Ich will ja niemandem vorschreiben, wie er was zu programmieren hat.
Das problem war das ich immer wieder den Timer im Move ereignis aufgerufen habe.
Das wird jetzt einfach durch ne Variable unterbunden.

Delphi-Quellcode:
        ID_BTN_ANIMNEWPROGBAR:
        begin
          if not (AnimButton = 1) then
          begin
            SKAERO_SetCTLText(lblToolTips.Handle, 'Neue ProgBar erstellen');
            Img := SKAERO_GetButImageBackProperty(btnAnimNewProgBar.Handle);
            GDIP_GetImageSize(Img, imgW, imgH);
            ImgAnimW := imgW div 31;
            AnimButton := 1;
            SetTimer(MainHandle, ANIM_TIMER, 50, nil);
          end;
        end;
TimerEvent war Ok..

Dann ist das erstmal so Ok..


gruss


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:25 Uhr.
Seite 3 von 3     123   

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