Clomosy | Forum Ana Sayfa
Forum Anasayfa Forum Anasayfa > Genel Programlama > Genel İşlemler
  Aktif Konular Aktif Konular RSS - if olasılığının karşılanmaması
  SSS SSS  Forumu Ara   Etkinlikler   Kayıt Ol Kayıt Ol  Giriş Giriş

Clomosy Resmi Forum Sitesidir. Amacımız kullanıcılarımıza, iş ortaklarımıza, danışmanlara, yazılımcılara programlarımız hakkında destek ve bilgi vermektir.

if olasılığının karşılanmaması

 Yanıt Yaz Yanıt Yaz
Yazar
Mesaj
  Konu Arama Konu Arama  Topic Seçenekleri Topic Seçenekleri
umutbilici Açılır Kutu İzle
Yeni Üye
Yeni Üye


Kayıt Tarihi: 07 Mayıs 2024
Durum: Aktif Değil
Puanlar: 6
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı umutbilici Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Konu: if olasılığının karşılanmaması
    Gönderim Zamanı: 07 Mayıs 2024 Saat 21:26
butona basılıncaa resmin animasyonlu şekilde büyümesini ve resmi aynı zamanda ortalamasını istediğim kod, resmin büyüklüğü en fazla 200 olması lazım ama 200 olduktan sonra sola gitmeye(sanırsam else altında olan clAnimateFloat(resim1,'Position.X',resim1.Position.X - deger / 2,2,1,0); kodu çalışıyor) devam ediyor yardımcı olur musunuz? (deger: 20)

void buyultme
var
sagdanposx,alttanposy,aradeger,aradegeren:Integer
{
sagdanposx=resim1.Position.X+resim1.Width
alttanposy=resim1.Position.Y+resim1.Height
  if(((deger>200-resim1.Height) && (200-resim1.Height>0)) || ((deger>200-resim1.Width) && (200-resim1.Width>0)) ) 
  {
   aradegerboy=200-resim1.Height
   aradegeren=200-resim1.Width
   clAnimateFloat(resim1,'Height',200,2,1,0);
   clAnimateFloat(resim1,'Position.X',resim1.Position.X - aradegeren / 2,2,1,0);
   clAnimateFloat(resim1,'Position.Y',resim1.Position.y - aradegerboy / 2,2,1,0);
    //resim1.Height=200
    //resim1.Width=200
    //resim1.Position.X=resim1.Position.X - aradegeren / 2
    //resim1.Position.Y=resim1.Position.Y - aradegerboy / 2
    //ShowMessage(resim1.Height);
    
  }
  else if((resim1.Height+deger>200) || (resim1.Width+deger>200))
  {
    ShowMessage('Büyütme Sınırına Ulaştınız!');
    //ShowMessage(resim1.Height); //KONTROL
  }
  else if((resim1.Position.X<deger) || (sagdanposx+20>resimpanel.Width))
  {
    ShowMessage('Sınırları Aşamazsınız!');
  }
  else if((resim1.Position.Y<deger) || (alttanposy+20>resimpanel.Height))
  {
    ShowMessage('Sınırları Aşamazsınız!');
  }
  else
  {
    clAnimateFloat(resim1,'Height',resim1.Height+deger,2,1,0);
    //resim1.Height=resim1.Height+deger
    clAnimateFloat(resim1,'Width',resim1.Width+deger,2,1,0);
    //resim1.Width=resim1.Width+deger
    clAnimateFloat(resim1,'Position.X',resim1.Position.X - deger / 2,2,1,0);
    //resim1.Position.X=resim1.Position.X - deger / 2
    clAnimateFloat(resim1,'Position.Y',resim1.Position.Y - deger / 2,2,1,0);
    //resim1.Position.Y=resim1.Position.Y - deger / 2
    //ShowMessage(resim1.Height); //KONTROL
  }
}
Yukarı Dön
BilalCndn Açılır Kutu İzle
Forum Yöneticisi
Forum Yöneticisi
Simge

Kayıt Tarihi: 09 Ekim 2023
Durum: Aktif Değil
Puanlar: 150
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (1) Teşekkürler(1)   Alıntı BilalCndn Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 08 Mayıs 2024 Saat 11:56
Merhaba Umut,

Kodu inceledim. Resmin boyutu 180(200-deger)e ulaşasıya kadar butona her tıkladığında 'else' kod bloğu çalışıyor. 180nin üzerine çıktığında ise en üstteki 'if' kısmı çalışıyor. Burada görselin yüksekliği 200 oluyor fakat görselin genişliği son değerinde sabit kalıyor. Bu sebeple butona her tıkladığında tekrar tekrar bu 'if' çalışıyor ve görselin boyutu değişmeden sadece konumu değişiyor. Yapman gereken değişiklik aşağıdaki gibidir.

if(((deger>200-resim1.Height) && (200-resim1.Height>0)) || ((deger>200-resim1.Width) && (200-resim1.Width>0)) ) 
  {
   aradegerboy=200-resim1.Height;
   aradegeren=200-resim1.Width;
   clAnimateFloat(resim1,'Height',200,2,1,0);
   clAnimateFloat(resim1,'Width',200,2,1,0); //Eklediğim satır
   ShowMessage('Genişlik: ' + FloatToStr(resim1.Width) + ' Yükseklik: ' + FloatToStr(resim1.Height)); //Kontrol 
   clAnimateFloat(resim1,'Position.X',resim1.Position.X - aradegeren / 2,2,1,0);
   clAnimateFloat(resim1,'Position.Y',resim1.Position.y - aradegerboy / 2,2,1,0);
    //resim1.Height=200
    //resim1.Width=200
    //resim1.Position.X=resim1.Position.X - aradegeren / 2
    //resim1.Position.Y=resim1.Position.Y - aradegerboy / 2
    //ShowMessage(resim1.Height);
    
  }

Sorununun çözüme ulaşıp ulaşmadığı ile ilgili geri dönüşünü bekliyorum.
İyi çalışmalar diliyorum.
Yukarı Dön
umutbilici Açılır Kutu İzle
Yeni Üye
Yeni Üye


Kayıt Tarihi: 07 Mayıs 2024
Durum: Aktif Değil
Puanlar: 6
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı umutbilici Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 08 Mayıs 2024 Saat 18:20
teşekkür ederim ben sola doğru hareket ettiği için clAnimateFloat(resim1,'Position.X',resim1.Position.X - aradegeren / 2,2,1,0);koduyla alakalı bi sıkıntı olduğunu düşünmüştüm ona hiç dikkat etmemiştim
Yukarı Dön
 Yanıt Yaz Yanıt Yaz

Forum Atla Forum İzinleri Açılır Kutu İzle

Forum Software by Web Wiz Forums® version 12.07
Copyright ©2001-2024 Web Wiz Ltd.

Bu Sayfa 0,078 Saniyede Yüklendi.