Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Runtime Oluşturulan Nesnelerin animasyonu
#1
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.
Cevapla
#2
Kalan kısımlar da benden olsun. 

   

Not: Uses bölümüne FMX.Ani ekleyin.
Begin : = end / 2;
Cevapla
#3
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
Cevapla
#4
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;


Ek Dosyalar
.zip   FMX_Sample_1.zip (Dosya Boyutu: 7,55 KB / İndirme Sayısı: 12)
Cevapla
#5
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.
Cevapla
#6
(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.
Cevapla
#7
Wink 
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
Cevapla
#8
(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.
Begin : = end / 2;
Cevapla
#9
   



.zip   DCAN.zip (Dosya Boyutu: 8,39 KB / İndirme Sayısı: 9)
Gölge etme başka ihsan istemem.
Cevapla
#10
(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.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Çalışma anında lisboxitem da oluşturulan nesneye ulaşmak diseqc 7 3.257 19-11-2022, Saat: 22:09
Son Yorum: diseqc
Thumbs Up Delphi mobil uygulamalarında açılış animasyonu rmzgenius 3 1.666 30-10-2022, Saat: 12:36
Son Yorum: mcuyan
  Resime kendi etrafın dönme animasyonu verme HakanY 3 2.240 02-11-2021, Saat: 10:07
Son Yorum: RAD Coder
  PAServer 21.0 Runtime Error ikurt07 1 1.310 21-06-2021, Saat: 09:20
Son Yorum: RAD Coder
  Runtime Create edilen nesnenin Parent erişim sorunu 41linea41 5 3.917 17-05-2021, Saat: 10:26
Son Yorum: ozcanm



Konuyu Okuyanlar: 1 Ziyaretçi