AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Animierte Image Button

Ein Thema von EWeiss · begonnen am 20. Aug 2012 · letzter Beitrag vom 23. Aug 2012
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#11

AW: Animierte Image Button

  Alt 20. Aug 2012, 21:07
Also die Animation läuft flüssig, flimmert bei mir allerdings ein wenig.
Scheint auch komplett alles freigegeben zu sein.

Win7 x64
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#12

AW: Animierte Image Button

  Alt 20. Aug 2012, 21:13
Also die Animation läuft flüssig, flimmert bei mir allerdings ein wenig.
Scheint auch komplett alles freigegeben zu sein.

Win7 x64
Danke für dein Feedback..

Glaube das von dir wahrgenommene Flimmern liegt am Filmstrip selbst.
Das letzte Frame ist übergangsmäßig nicht synchron genug das erweckt den anschein das es Flimmert.

gruss
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#13

AW: Animierte Image Button

  Alt 20. Aug 2012, 21:25
Nee, bei mir ist ein kleines weißes aufblitzen zwischen den einzelnen Bildern zu sehen.
Also nicht nur beim Übergang vom letzten zum ersten Bild.
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#14

AW: Animierte Image Button

  Alt 20. Aug 2012, 21:43
Nee, bei mir ist ein kleines weißes aufblitzen zwischen den einzelnen Bildern zu sehen.
Also nicht nur beim Übergang vom letzten zum ersten Bild.
Das ist schlecht dann muss ich wohl noch was dran arbeiten.

gruss
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#15

AW: Animierte Image Button

  Alt 20. Aug 2012, 21:47
Das ist schlecht dann muss ich wohl noch was dran arbeiten.

gruss
DAher gibts gerade keinen Download?
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von Jonas Shinaniganz
Jonas Shinaniganz

Registriert seit: 30. Aug 2011
249 Beiträge
 
Delphi XE5 Ultimate
 
#16

AW: Animierte Image Button

  Alt 21. Aug 2012, 08:53
Habe das Verzeichnis mal von Hand erstellt.

Also die Icons drehen sich flüssig aber mit leichtem Flackern. Der Schatten wird immer gut angezeigt. Wenn man allerdings auf die Buttons klickt kommt die Animation etwas durcheinander. Vielleicht wäre es gut im OnMouseDown der Buttons die Animation zu pausieren...

Verwendest du eigene Styles?
Die Form ist eine FM 3D Anwendung?
Ist die Animation auf fortlaufend eingestellt?

Grüße jonas
Die Leiter der Entwicklungsabteilung dreht total am Mausrad!
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#17

AW: Animierte Image Button

  Alt 21. Aug 2012, 19:59
Habe das Verzeichnis mal von Hand erstellt.

Also die Icons drehen sich flüssig aber mit leichtem Flackern. Der Schatten wird immer gut angezeigt. Wenn man allerdings auf die Buttons klickt kommt die Animation etwas durcheinander. Vielleicht wäre es gut im OnMouseDown der Buttons die Animation zu pausieren...
Grüße jonas
Dafür ist das vorgesehen.
Zitat:
Was ich wohl noch machen muss ist ein ImageDn zu übergeben.
Das erste Frame im Filmstrip ist nicht dafür geeignet da es zur Animations sequenz gehört und schon erhaben ist.(Schatten)
Wenn du im Design Ordner schaust wirst du die Animationen als sogenannte Filmstrips vorfinden.
Die Schatten sind also im Bild selbst enthalten.
Zitat:
Die Form ist eine FM 3D Anwendung?
Nein reines API Fenster.
Rechter Mausklick oben im Caption anderes Design auswählen.

Zitat:
Ist die Animation auf fortlaufend eingestellt?
Nein Timer abhängig.

Die Funktionsweise ist so aufgebaut.

Anwendung:

Delphi-Quellcode:
    btnAnimVornHinten := CTRL_ImageButtonCreate(MainHandle, PWideChar(SKAERO_FOLDER +
      'AnimVH.png'), 16, 28, ID_BTN_ANIMVORNHINTEN, 30);
    SKAERO_SetAnchorMode(btnAnimVornHinten.Handle, HWND_BOTTOM);
    SKAERO_SetZorder(btnAnimVornHinten.Handle, HWND_TOP);
Delphi-Quellcode:
    WM_MOUSEMOVE:
    begin
      case wp of
        begin
          SKAERO_SetCTLText(lblToolTips.Handle, 'Vorne/Hinten Umschalten');
          Img := SKAERO_GetButImageBackProperty(btnAnimVornHinten.Handle);
          GDIP_GetImageSize(Img, imgW, imgH);
          ImgAnimW := imgW div 30; // 30 Bilder/Frames im FilmStrip
          AnimButton := 0;
          SetTimer(MainHandle, ANIM_TIMER, 50, nil);
        end;
      end;
    end;

    WM_TIMER:
    begin
      case wp of
        ANIM_TIMER:
        begin
          case AnimButton of
            0:
              btnAnimVornHinten.AnimateButton(btnAnimVornHinten.Handle, ImgAnimW);
          end;
        end;
      end;
    end;
DLL Seite:

Delphi-Quellcode:
procedure TSkinImageButton.AnimTimer(Sender: TObject);
var
  Img: Cardinal;
  graphics: Cardinal;
  imgW, imgH: cardinal;
  DC: HDC;
  rw : TRect;
  lp :TPoint;
  hDCBack: HDC;

begin

    Img := SkinEngine.GetButImageBackProperty(Handle);
    SkinEngine.GetImageSize(Img, ImgW, ImgH);

    if Value > integer(ImgW div FFRameWidth) then
      Value := FFRameWidth;

    if Value = 0 then
      Value := FFRameWidth;

    DC := GetDC(FOwner);
    hDCBack := CreateCompatibleDC(DC);

    GetClientRect(Handle, rc);

    GetWindowRect(Handle, rw);
    lp.x := rw.Left;
    lp.y := rw.Top;
    ScreenToClient(FOwner, lp);

    SelectObject(hDCBack, SkinEngine.GetBackBitmap(FOwner));
    BitBlt(DC, lp.x, lp.y, rc.Right, rc.Bottom, hDCBack, lp.x,
      lp.y, SRCCOPY);
    DeleteDC(hDCBack);

    if GdipCreateFromHDC(DC, graphics) = OK then
    begin
      GdipDrawImageRectRectI(Graphics, Img, lp.x, lp.Y, FFRameWidth, ImgH,
        Value, 0, FFRameWidth,
        ImgH, 2, nil, False, nil);
    end;

    ReleaseDC(FOwner, DC);
    GdipDeleteGraphics(Graphics);

    Value := Value + FFRameWidth;
    FAnimTimer.Enabled := False;

end;
Delphi-Quellcode:
procedure TSkinImageButton.AnimateButton(WinHandle: HWND; FRameWidth: Integer);
begin

  FFRameWidth := FRameWidth;
  FHImageButton := WinHandle;

  FAnimTimer.Free;

  FAnimTimer := TTimer.Create(nil);
  FAnimTimer.Interval := 25;
  FAnimTimer.OnTimer := AnimTimer;

end;
Falls hier wieder Typen wie Furtbichler rummeckern wollen.
Ja es gibt bestimmt besser ansätze das umzusetzen.
Habe auch nichts gegen verbesserungs vorschläge. (davon ausgenommen genannter ?Kollege?)
Dann verzichte ich doch lieber.

Neue TestVersion mit Initialisierungs, späteres ImageDown Image hochgeladen.
Als nächstes muss ich erstmal ne "transparente EDIT" programmieren.

gruss

Geändert von EWeiss (11. Jul 2019 um 16:41 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#18

AW: Animierte Image Button

  Alt 21. Aug 2012, 21:52
Die Animationen starten irgendwie nicht an der korrekten Position. Da ist ein leichtes Springen drin, wenn ich mit der Maus über ein Toolbar-Icon fahre. Ansonsten schauts doch ganz gut aus
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#19

AW: Animierte Image Button

  Alt 21. Aug 2012, 21:54
Wer sehen will was das teil später mal tut kann sich ja meine Hilfe Datei anschauen.
Das Programm habe ich mal in VB geschrieben (1999) und setze es jetzt nach Delphi um.

Leider hat die *.chm kleine Skriptfehler so das man nicht mehr alles lesen kann.
Wenn man also unter Programm/ProgBar im linken Reiter klickt anschließend auf das Image auf der aktualisierten seite
funtioniert dann auf der darauf folgenden Seite nur der Eintrag 6. Konfigurieren der Knöpfe.

Anhang gelöscht..

gruss

Geändert von EWeiss (22. Aug 2012 um 08:23 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#20

AW: Animierte Image Button

  Alt 21. Aug 2012, 22:01
Die Animationen starten irgendwie nicht an der korrekten Position. Da ist ein leichtes Springen drin, wenn ich mit der Maus über ein Toolbar-Icon fahre. Ansonsten schauts doch ganz gut aus
Das erste Bild was man beim start sieht gehört nicht zur Animation liegt also Flach auf der Form
Nach einen MouseMove wird dieses Visible False geschaltet.
Die Animation die dann sichtbar geschaltet wird bekommt dann automatisch den Focus da die Maus sich ja noch an der gleichen position befindet.
Das erste Frame im Strip hat dann einen Schatten so das es aussieht als wenn das Image angehoben würde.
Ist es das was du meinst?

Eigentlich sollte schon immer zuerst dieses sichtbar werden.
Beim letzten Bild im Strip habe ich ein synchronisierungs problem vom letzten zum ersten
das verursacht eine kleine Unregelmäßigkeit.

Ich glaube hier liegt wieder mal ein Timing problem vor.

Danke für deine Infos.

gruss

Geändert von EWeiss (21. Aug 2012 um 22:16 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:43 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