Delphi Can
Runtime Oluşturulan Nesnelerin animasyonu - Baskı Önizleme

+- Delphi Can (https://www.delphican.com)
+-- Forum: Delphi (https://www.delphican.com/forumdisplay.php?fid=3)
+--- Forum: Mobil Platform - FireMonkey (FMX) (https://www.delphican.com/forumdisplay.php?fid=7)
+--- Konu Başlığı: Runtime Oluşturulan Nesnelerin animasyonu (/showthread.php?tid=7577)

Sayfalar: 1 2


Runtime Oluşturulan Nesnelerin animasyonu - ssmr - 25-01-2024

Merhaba. Mobil için kullanmayı düşündüğüm bir animasyonu nasıl yapacağım konusunda çözümsüz kaldım. 
Basit bir örnek üzerinde izah etmek gerekirse; form üzerinde runtime oluşturulan 3 adet roundrectangle nesnesine yine 3 adet runtime Floatanimasyon eklenecek. Bu üç adet rectangle nesnesindeki floatanimasyon yarımşar saniye ara ile start alacak. (roundrectangle sayısı örnek olsun diye üç adet verilmiştir. Bu sayı değişken olacak). Animasyon tipi farketmez. Aşağı, yukarı, sağa yada sola olabilir hepsi. Amacım topları yarımşar saniye ara ile hareket ettirmek. Rectangle ve animasyonların runtime oluşturabiliyorum. Ancak animasyonların yarımşar saniye ara ile başlamasını bir türlü yapamadım. Hepsi aynı anda hareket ediyor.  Yardımlarınız için teşekkür ederim.


Cvp: Runtime Oluşturulan Nesnelerin animasyonu - RAD Coder - 25-01-2024

Kalan kısımlar da benden olsun. 

[attachment=2550]

Not: Uses bölümüne FMX.Ani ekleyin.


Cvp: Runtime Oluşturulan Nesnelerin animasyonu - ssmr - 25-01-2024

Cevabınız için teşekkür ederim. Ancak bu animasyon biri bitmeden diğerine geçmiyor. Yani ilk animasyon tamamlanmadan ikincisi başlamıyor. Benim başaramadığım birinci buton hareket etmeye başladıktan hemen sonra ama biraz geriden diğer butonun da hareket etmeye başlaması. Yani ilk buton harekete başlayacak, görsel olarak biraz geç bir şekilde birinci buton yolda iken yani birinci buton animasyonu sona ermeden ikinci buton da hareket etmeye başlayacak. 3. buton da 2.buton animasyonu tamamlanmadan harekete başlayacak. Böyle silsile halinde devam edecek biraz gecikmeyle animasyonlar çalışacak


Cvp: Runtime Oluşturulan Nesnelerin animasyonu - delphi.developer - 25-01-2024

Sanırım amaçladığınız görseldeki gibi bir örnek. @RAD Coder 'in örneklediği TAnimator üzerinden TThread sınıfı ile eklemeler yaptım. Örnek proje kodunuda ekledim.

yQIa4gr.gif

  var AnimationObjects := [Button1, Button2, Button3];
 TButton(AnimationObjects[0]).Position.X := 8;
 TButton(AnimationObjects[1]).Position.X := 8;
 TButton(AnimationObjects[2]).Position.X := 8;

 TThread.CreateAnonymousThread(
   procedure
   begin
     var TransitionTime := StrToIntDef(Edit1.Text, 100);
     for var AnimaObject in AnimationObjects do
     begin
       TThread.Synchronize(nil,
         procedure
         begin
           StartAnimation(AnimaObject);
         end
       );
       TThread.Sleep(TransitionTime);
     end;
   end
 ).Start;



Runtime Oluşturulan Nesnelerin animasyonu - ssmr - 25-01-2024

Cevabınız için çok teşekkür ederim. Aradığım şey tam olarak bu sayılır. Ancak kodu start butonunun eventinda çalıştıramadım. Bu kodun tamamı değil sanırım.


Cvp: Runtime Oluşturulan Nesnelerin animasyonu - delphi.developer - 26-01-2024

(25-01-2024, Saat: 22:24)ssmr Adlı Kullanıcıdan Alıntı: Cevabınız için çok teşekkür ederim. Aradığım şey tam olarak bu sayılır. Ancak kodu start butonunun eventinda çalıştıramadım.  Bu kodun tamamı değil sanırım.

Proje kodlarını şimdi aktarım. Örnek üzerinden çalışma sağlayabilirsiniz.


Cvp: Runtime Oluşturulan Nesnelerin animasyonu - ssmr - 26-01-2024

var satırında hata alıyorum gönderdiğiniz projeyi çalıştırdığımda.

[dcc32 Error] Unit1.pas(36): E2029 Statement expected but 'VAR' found
[dcc32 Error] Unit1.pas(36): E2029 ';' expected but 'VAR' found


Cvp: Runtime Oluşturulan Nesnelerin animasyonu - RAD Coder - 26-01-2024

(26-01-2024, Saat: 09:11)ssmr Adlı Kullanıcıdan Alıntı: var satırında hata alıyorum gönderdiğiniz projeyi çalıştırdığımda.

[dcc32 Error] Unit1.pas(36): E2029 Statement expected but 'VAR' found
[dcc32 Error] Unit1.pas(36): E2029 ';' expected but 'VAR' found

Muhtemelen kullandığınız Delphi sürümü Inline Variable ı desteklemiyor (Delphi 10.3 Rio ve daha üst sürümlerinde bu özellik var).
Çözüm olarak; var kısmını begin üstündeki satıra taşıyın.


Runtime Oluşturulan Nesnelerin animasyonu - Diyojen - 26-01-2024

[attachment=2552]


[attachment=2553]


Cvp: Runtime Oluşturulan Nesnelerin animasyonu - ssmr - 26-01-2024

(26-01-2024, Saat: 09:26)RAD Coder Adlı Kullanıcıdan Alıntı:
(26-01-2024, Saat: 09:11)ssmr Adlı Kullanıcıdan Alıntı: var satırında hata alıyorum gönderdiğiniz projeyi çalıştırdığımda.

[dcc32 Error] Unit1.pas(36): E2029 Statement expected but 'VAR' found
[dcc32 Error] Unit1.pas(36): E2029 ';' expected but 'VAR' found

Muhtemelen kullandığınız Delphi sürümü Inline Variable ı desteklemiyor (Delphi 10.3 Rio ve daha üst sürümlerinde bu özellik var).
Çözüm olarak; var kısmını begin üstündeki satıra taşıyın.
Evet sanırım ondan. Delphi 10.1 berlin kullanıyorum. Ayrıca var ın bu şekilde kullanıldığını yeni gördüm. Akşama evde 10.3 ile deneyeceğim.