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/)
-   -   FireMonkey (https://www.delphipraxis.net/167942-firemonkey.html)

Peter666 26. Apr 2012 18:11

FireMonkey
 
Hi,

ich hab hier ein Problem mit dem Verständniss. Ich möchte gerne ein Bitmap Button erstellen, dass wie folgt angezeigt wird. Das Bitmap besteht aus 5 einzelnen untereinander gezeichneten Bildern in der Reihenfolge: Deaktiviert, Normal, Hoover, Gedrückt, Gedrückt Hoover.
Es läuft wohl auf folgendes hinaus: Ich würde der Übersichtlichkeit ein abgeleitetes TImage (anstelle von TButton) nehmen und der Klasse eine TBitmapAnimation zuweisen die je nach Zustandsänderung ein Start bzw. Endvalue gezeichnet bekommt. Hat jemand vielleicht eine bessere Idee? Irgendwie gibts etwas derartiges nicht und naja mein Bauchgefühl sagt mir das das wie ich mir es vorstelle nicht wirklich sinnvoll ist.

Das heisst es wird wohl so etwas:
Code:
var
  w, h: single;
begin
  w := FButton.Width;
  h := FButton.Height / 5;
  with BitmapAnimation do
  begin
    StartValue.Canvas.BeginScene;
    StartValue.Canvas.DrawBitmap(FButton, RectF(0, 0, w, h),
      RectF(0, 0, w, h), 1);
    StartValue.Canvas.EndScene;
    StartValue.BitmapChanged;
    StopValue.Canvas.BeginScene;
    StopValue.Canvas.DrawBitmap(FButton, RectF(0, 2 * h, w, 2 * h + h),
      RectF(0, 0, w, h), 1);
    StopValue.Canvas.EndScene;
    StopValue.BitmapChanged;
  end;
Wie bekomme ich nun die Bitmapanimation dazu besagte Animation auszuführen? Ich habs mit StartAnimation() probiert, aber da tut sich irgendwie nichts :(

Peter

mkinzler 26. Apr 2012 19:05

AW: FireMonkey
 
Firemonkey basiert auf Vektorgrafik. Deshalb würde ich den Button eher darauf aufbauen und keinen Pixelbildern.

Peter666 27. Apr 2012 22:00

AW: FireMonkey
 
Naja, das ist Ansichtssache. Erstelle mal ein FMX Projekt, packe ein Rechteck (mit align=Client) drauf und füge da eine Animation zu Rotieren hinzu, die das Objekt um 1 Grad pro Frame dreht. Wenn man sich die CPU Last anguckt, kommt man nicht Grade auf die Idee das diese Vektorgrafikidee so ne dolle Idee ist. Ich brauch's hält für ein Touchpadprojekt wo viele bunte Buttons drin sind. Mittlerweile geht das so halbwegs wie gedacht, aber die 400 fps die mein D3D9 Pendant via Delphi 7 macht, geht unter osx via FMX nicht. Gut ich kann das Projekt auch als reines OpenGL erstellen, aber ich hätte gerne was mit firemonkey geht.


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