AGB  ·  Datenschutz  ·  Impressum  







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

TRectangle ändert in D10.4 die Farbe nicht

Ein Thema von dynamo · begonnen am 10. Apr 2023 · letzter Beitrag vom 12. Apr 2023
Antwort Antwort
dynamo

Registriert seit: 21. Okt 2008
Ort: Bordesholm
37 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: TRectangle ändert in D10.4 die Farbe nicht

  Alt 10. Apr 2023, 22:04
Ja vielen Dank, ich werde in dieser Richtung mal rumexperimentieren. Eigentlich ist das Programm ja schon fertig. Ich hatte es in Delphi 10.2 programmiert und auf Delphi 10.4 übertragen. Diese Primitiv-Ani war der einzige Punkt, der nur in 10.4 rumgezickt hat. Alles andere ist in Ordnung (oder sogar noch besser geworden).
Jörg
  Mit Zitat antworten Zitat
dynamo

Registriert seit: 21. Okt 2008
Ort: Bordesholm
37 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: TRectangle ändert in D10.4 die Farbe nicht

  Alt 10. Apr 2023, 23:26
Das mit der TColorAnimation war genau der richtige Tipp. Jetzt kann ich auch noch andere Komponenten damit beglücken. Vielen Dank nochmal.
Jörg
  Mit Zitat antworten Zitat
dynamo

Registriert seit: 21. Okt 2008
Ort: Bordesholm
37 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: TRectangle ändert in D10.4 die Farbe nicht

  Alt 11. Apr 2023, 14:08
Ich hab jetzt für mich die ideale Lösung gefunden. Hier ein kleines Beispiel für alle Interessierten:

Delphi-Quellcode:
unit Unit1;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
  FMX.Controls.Presentation, FMX.StdCtrls, FMX.Edit, FMX.Objects, FMX.Ani;

type
  TForm1 = class(TForm)
    Rectangle1: TRectangle;
    Rectangle2: TRectangle;
    Rectangle3: TRectangle;
    procedure Rectangle2Click(Sender: TObject);
    procedure Rectangle1Click(Sender: TObject);
    procedure Rectangle3Click(Sender: TObject);
  private
    procedure ani(Sender: TObject; Color: TAlphaColor);
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.fmx}


procedure TForm1.Rectangle1Click(Sender: TObject);
begin
  ani(Rectangle1,TAlphaColorRec.Red);
end;

procedure TForm1.Rectangle2Click(Sender: TObject);
begin
  ani(Rectangle2,TAlphaColorRec.Green);
end;

procedure TForm1.Rectangle3Click(Sender: TObject);
begin
  ani(Rectangle3,TAlphaColorRec.Blue);
end;

procedure TForm1.ani(Sender: TObject; Color: TAlphaColor);
var origColor : TAlphaColor;
begin
  if sender is TRectangle then
  begin
    // welche Farbe hatte TRectangle vor der Animation?
    origColor := (sender as TRectangle).Fill.Color;
    // set animation Color
    (sender as TRectangle).AnimateColor('Fill.Color', Color, 0.5, TAnimationType.InOut,
       TInterpolationType.Linear);
    // reset original Color
    (sender as TRectangle).AnimateColor('Fill.Color', origColor, 0.5, TAnimationType.InOut,
       TInterpolationType.Linear);
  end;
end;

end.
Jörg
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.398 Beiträge
 
Delphi 12 Athens
 
#4

AW: TRectangle ändert in D10.4 die Farbe nicht

  Alt 11. Apr 2023, 16:02
Im FormDesigner, bei Fill.Color, die Liste aufklappen und gaaaaaaaaanz unten z.B. eine ColorAnimation erstellen.
Dort gibt es auch ein StartFromCurrent.

* eine Animation mit dem selben Start- und End-Wert, aber mit einem Zwischenwert (also hin und zurück als eine Animation)
* oder eine Animation mit AutoRevert, also anschließend wieder zurück zum Ausgangswert

Nur bei Trigger "IsPressed=true" startet bei mir leider keine Animation, wenn ich mit der Maus draufdrück.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (11. Apr 2023 um 16:04 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.679 Beiträge
 
Delphi 12 Athens
 
#5

AW: TRectangle ändert in D10.4 die Farbe nicht

  Alt 11. Apr 2023, 16:24
Nur bei Trigger "IsPressed=true" startet bei mir leider keine Animation, wenn ich mit der Maus draufdrück.
Laut Doku wird IsPressed nur von TCustomButton, TRadioButton, TCheckBox und TThumb unterstützt.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.398 Beiträge
 
Delphi 12 Athens
 
#6

AW: TRectangle ändert in D10.4 die Farbe nicht

  Alt 11. Apr 2023, 18:00
OK, dann ist es nur etwas unpraktisch, dass es hier im Designer zur Auswahl steht.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.398 Beiträge
 
Delphi 12 Athens
 
#7

AW: TRectangle ändert in D10.4 die Farbe nicht

  Alt 12. Apr 2023, 13:47
Tipp:

Zitat:
procedure ani(Sender: TObject; Color: TAlphaColor);
Statt TObject kannst du auch TRectangle oder TShabe benutzen (somit auch für die anderen Figuren)
und mußt dann in der Methode nichts prüfen oder casten. (macht der Compiler beim Aufruf der Funktion)

TShape wegen dem .Fill,
der Rest (AnimateColor) wäre schon ab TFmxObject verfügbar (also für praktisch alle Komponenten)
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Antwort Antwort


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 20:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz