Floatanimation ile Timer Çalışması

FireMonkey ve Mobil uygulama (iOS, Android, Windows Phone) ile ilgili sorularınızı bu foruma sorabilirsiniz.
Cevapla
Hashirama
Üye
Mesajlar: 81
Kayıt: 26 Kas 2013 03:42

Floatanimation ile Timer Çalışması

Mesaj gönderen Hashirama »

Merhaba Arkadaşlar

Timer nesnesi ile saniye sayarken aynı anda Floatanimation ile animasyon yaptığımda animasyonlarda donma(kesik kesik hareket) gerçekleşiyor. Timer ı durdurduğumda ise animasyonda ki donma ortadan kalkıyor.

Bu konuda tecrübesi olan var mı ?
Kullanıcı avatarı
barisatalay
Üye
Mesajlar: 398
Kayıt: 02 Nis 2013 05:43
İletişim:

Re: Floatanimation ile Timer Çalışması

Mesaj gönderen barisatalay »

Floatanimation hangi kod blogu altında yapıyorsun ? Timer içerisindemi ?
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7588
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Re: Floatanimation ile Timer Çalışması

Mesaj gönderen mussimsek »

Merhaba,

Timer'ın şöyle bir gıcıklığı var. Timer'ı eğer durdurmazsanız sürekli çalışır. 2 saniyeye ayarlamışsanız, animasyonu başlatır. 2 saniye geçince tekrar başlatır. Şöyle bir kod yazmanız lazım :

Kod: Tümünü seç

try
  Timer1.Enabled := False;
   ... işlemlerimizi yaptık
finally
  Timer1.Enabled := True;
end;
Bazen bu da işe yaramayabilir, çünkü animasyonu başlatıp altta tekrar timer'ı açabilir. Bu durumda başlayınca timer'ın süresini arttır.

Kolay gelsin.
Hashirama
Üye
Mesajlar: 81
Kayıt: 26 Kas 2013 03:42

Re: Floatanimation ile Timer Çalışması

Mesaj gönderen Hashirama »

Floatanimation hangi kod blogu altında yapıyorsun ? Timer içerisindemi ?

Hayır. Herhangi bir butona tıkladığımda çalışmasını tetikliyorum.

Kod: Tümünü seç

timer1.interval:=1000;
timer1.enabled:=true;

floatanimation1.ppropertyname:='position.y';
floatanimation1.startvalue:=0;
floatanimation1.stopvalue:=100;
Floatanimation1.start;

// şeklinde
timer için

Kod: Tümünü seç

var
i:integer=0;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
if i>0 then
 begin
 dec(i);
 label1.Text:=inttostr(i);
 pie1.EndAngle:=pie1.EndAngle - (360 / 100); // 360 derece yi 100 saniyeye bölüyoruz
 end else
 timer1.Enabled:=false;

end;

Cevaplarınız için teşekkürler ama animasyon süresini kısa tutarak sorunu şimdilik erteledim.
Cevapla