Sayfayı Yazdır | Pencereyi Kapat

GenerateRandom Fonksiyonu hatası

Nereden Yazdırıldığı: Clomosy | Forum
Kategori: Genel Programlama
Forum Adı: Genel İşlemler
Forum Tanımlaması: TRObject dili ile programlama yaparken karşılaşılan genel işlemler
URL: https://forum.clomosy.com.tr/forum_posts.asp?TID=1037
Tarih: 19 Haziran 2025 Saat 00:43
Program Versiyonu: Web Wiz Forums 12.07 - https://www.webwizforums.com


Konu: GenerateRandom Fonksiyonu hatası
Mesajı Yazan: haletr
Konu: GenerateRandom Fonksiyonu hatası
Mesaj Tarihi: 18 Haziran 2025 Saat 14:02
Oluşturduğum dairenin konumunun formun herhangi bir yerinde başlamasını istiyorum fakat generaterandom fonksiyonu dairenin X ve Y değerlerini değiştirmiyor

var
  gameForm:TclGameForm;
  elapsedTime,randomX,randomY: Integer;
  timer1: TclTimer;
  lblScore: TClProLabel;
  circle1,circle2,circle3,circle4: TclCircle;
void randomCircleStart {

}
//60sn rastgele daire 
{
  gameForm = TCLGameForm.Create(Self);
  gameForm.SetFormColor('#b4e9b5','',clGNone);
  
  circle1 = gameForm.AddNewCircle(gameForm, 'circle1');
  circle1.Width = 100;
  circle1.Height = 100;
  circle1.Fill.Kind = fbkSolid;
  circle1.Stroke.Thickness = 2;
  circle1.Opacity= 0.7;
  randomX=clMath.GenerateRandom(0,TForm(gameForm).ClientWidth - circle1.Height);
  randomY=clMath.GenerateRandom(0,TForm(gameForm).ClientWidth - circle1.Width);
  circle1.Position.X = randomX;
  ShowMessage(circle1.Position.X);
  circle1.Position.Y= randomY;
  ShowMessage(circle1.Position.Y);
  
  gameForm.Run;
}  



Cevaplar:
Mesajı Yazan: Emr.Erkmn
Mesaj Tarihi: 18 Haziran 2025 Saat 16:18
Merhabalar,
clMath.GenerateRandom() fonksiyonu  yerine doğrudan Random() fonksiyonunu kullanabilirsiniz.
Ayrıca, circle1.Align = alNone olarak ayarlanmazsa Position.X ve Y değerleri çalışmaz, buna dikkat etmeniz gerekir.
Aşağıdaki gibi prosedür tanımlayıp form içinde çağırarak sorunu çözebilirsiniz
void randomCircleStart;
{
  randomX = Random(gameForm.clWidth - circle1.Width);
  randomY = Random(gameForm.clHeight - circle1.Height);
  circle1.Position.X = randomX;
  circle1.Position.Y = randomY;
}
Kolay gelsin.



Sayfayı Yazdır | Pencereyi Kapat

Forum Software by Web Wiz Forums® version 12.07 - https://www.webwizforums.com
Copyright ©2001-2024 Web Wiz Ltd. - https://www.webwiz.net