Clomosy | Forum Ana Sayfa
Forum Anasayfa Forum Anasayfa > Genel Programlama > Genel İşlemler
  Aktif Konular Aktif Konular RSS - Renk Değiştirme
  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.

Renk Değiştirme

 Yanıt Yaz Yanıt Yaz
Yazar
Mesaj
  Konu Arama Konu Arama  Topic Seçenekleri Topic Seçenekleri
emre.gungor01 Açılır Kutu İzle
Deneyimli Üye
Deneyimli Üye


Kayıt Tarihi: 03 Mayıs 2024
Konum: Konya
Durum: Aktif Değil
Puanlar: 46
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı emre.gungor01 Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Konu: Renk Değiştirme
    Gönderim Zamanı: 16 Mayıs 2024 Saat 22:37
Merhabalar;

Uygulamamda dizi kullandım sadece yuvarlağın içindeki sayaçta 100'ü geçtiği zaman sürekli olarak arka plan renginin değişmesini istedim ama olmadı ne kadar araştırsam da yapamadım bana bir yol gösterebilir misiniz?

Kodlar;

Var
  AnaForm:TclForm;
  btn1 : TClProButton;
  Zaman : TCLTimer;
  sayac:Integer;
  
  oyunzaman:TCLTimer;
  sayac1:Integer;
  lblTimer: TCLLabel;
  
  testImg: TCLImage;  //random yerlerde belirli zamanda görsel çıkartıyor. //EKSURE İÇİN KULLANDIM.
  
  i:Integer;
  dizi1: array[12] of String;
  
void eksure
{
  if(IntToStr(btn1.Text)==25)
  {
  testImg.Visible=True;
  sayac1 = sayac1+5;
  }
}
void zamanlayici;
{
  sayac = sayac + 1;
  oyunzaman.Enabled=True;
  btn1.Text = IntToStr(sayac);
  
  if(sayac == 25)
  {
    AnaForm.SetFormColor('#23c7c5','',clGNone);
    sayac1 = sayac1 + 3;
    btn1.Position.X = Abs((Random() * AnaForm.clWidth) - btn1.Width);
    btn1.Position.Y = Abs((Random() * AnaForm.clHeight) - btn1.Height);
    testImg.Position.X = Abs((Random() * AnaForm.clWidth) - testImg.Width);
    testImg.Position.Y = Abs((Random() * AnaForm.clHeight) - testImg.Height);
  }
  
  if(sayac == 72)
  {
    AnaForm.SetFormColor('#e01f1f','',clGNone);
    sayac1 = sayac1 + 5;
    btn1.Position.X = Abs((Random() * AnaForm.clWidth) - btn1.Width);
    btn1.Position.Y = Abs((Random() * AnaForm.clHeight) - btn1.Height);
  }
  
  if(sayac == 100)
  {
    AnaForm.SetFormColor('#cfeb00','#db7edd',clGHorizontal);
    sayac1 = sayac1 + 7;
    btn1.Position.X = Abs((Random() * AnaForm.clWidth) - btn1.Width);
    btn1.Position.Y = Abs((Random() * AnaForm.clHeight) - btn1.Height);
  }
  
  //Dizi başlangıçı
  if(sayac > 101)
  {
    dizi1[0] = '#26cf3a';
    dizi1[1] = '#ff780a';
    dizi1[2] = '#9a7de8';
    
    for (i = 0 to Length(dizi1)-1)
    {
      AnaForm.SetFormColor(' dizi1['+ IntToStr(i) +'] = '+ dizi1);
    }
  }
}

void sure;
{
  if(sayac1 == 0)
  {
    oyunzaman.Enabled = False;
    lblTimer.caption = IntToStr(sayac1);
    //sayac1=20;  // GEREKLİ OLDUĞUNDA AÇILACAK.
    ShowMessage('Süreniz Doldu!');
    ShowMessage('Puanınız: ' + IntToStr(sayac));
    
    
  }
  else
  {
    lblTimer.caption=IntToStr(sayac1);
    Dec(sayac1);
  }
}

  
 {
   sayac=0;
   
   sayac1=35;
   
   AnaForm = TclForm.Create(Self);
   
  
  oyunzaman=AnaForm.AddNewTimer(AnaForm,'oyunzaman',1000);
  oyunzaman.Enabled=False;
  AnaForm.AddNewEvent(oyunzaman,tbeOnTimer,'sure');
  
  lblTimer=AnaForm.AddNewLabel(AnaForm,'lblTimer','');
  lblTimer.StyledSettings = ssFamily;
  lblTimer.TextSettings.Font.Size = 35;
  lblTimer.Align = alTop;
  lblTimer.Height=50;
  lblTimer.Width=50;
  lblTimer.Margins.Left = 170;
  
  
  
   AnaForm.SetFormColor('#52504d','',clGNone); 
   btn1 = AnaForm.AddNewProButton(AnaForm,'btn1','SAYAC');
   testImg = AnaForm.AddNewImage(AnaForm,'testImg');
  
   btn1.Align = alNone; //Böyle yaparak butonu sabitlemiş oluyorum.
   btn1.Width = 100;
   btn1.Height = 100;
   btn1.Position.X = (AnaForm.clWidth / 2) - (btn1.Width / 2);  //konum1.
   btn1.Position.Y = (AnaForm.clHeight / 2) - (btn1.Width / 2); // konum2.
   
  testImg.Align = alNone;
  testImg.Height = 30;
  testImg.Width = 30;
  testImg.Visible=False;
  testImg.Position.X = (AnaForm.clWidth / 2) - (testImg.Width / 2);  //testImg konum1.
  testImg.Position.Y = (AnaForm.clHeight / 2) - (testImg.Width / 2); //testImg konum2.
   
   btn1.clProSettings.BorderColor = clAlphaColor.clHexToColor('#a0a3b1');
   btn1.clProSettings.FontColor = clAlphaColor.clHexToColor('#050505');
   btn1.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#ffffff');
   btn1.clProSettings.IsTransparent = False;
   btn1.clProSettings.FontSize = 12;
   btn1.clProSettings.FontVertAlign = palcenter;//palLeading , palCenter , palTrailing
   btn1.clProSettings.FontHorzAlign = palCenter;
   btn1.clProSettings.IsFill = True; 
   btn1.clProSettings.IsRound = True;
   btn1.clProSettings.RoundHeight = 50;
   btn1.clProSettings.RoundWidth = 50;
   btn1.clProSettings.BorderWidth = 3;
   btn1.SetclProSettings(btn1.clProSettings);
   
   
   AnaForm.AddNewEvent(btn1,tbeOnClick,'zamanlayici');
   AnaForm.AddNewEvent(testImg,tbeOnClick,'eksure');
   
  
   AnaForm.Run;
 
 }
   
Yukarı Dön
Atiker01 Açılır Kutu İzle
Forum Yöneticisi
Forum Yöneticisi


Kayıt Tarihi: 26 Temmuz 2023
Durum: Aktif Değil
Puanlar: 92
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı Atiker01 Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 17 Mayıs 2024 Saat 11:40
Merhaba Emre,
Yapılan örnek üzerinde dizi içerisinde renk kodları tanımlandı. Butona basıldıkça sayac değişkeni bir arttırılmaktadır ve bunun yanında if sorgusu ile eğer sayac 100'den büyük olursa sürekli olarak formun arkaplan rengi random değişmektedir. Aşağıdaki istenilen mantığa göre program yazılmıştır. Uygulamana göre yapıyı değiştirebilirsin.

var
   Form1:TclForm;
   oBtn : TclButton;
   sayac : Integer;
   RndmTimer: TClTimer;
   colorArray : array of String;
   
void randomColor;
var
  randmDeger : Integer;
{
  colorArray = ['#26cf3a','#ff780a','#9a7de8','#813b3b','#a664c4','#6492c4','#81c464'];
  randmDeger =  clMath.GenerateRandom(0,6);
  Form1.SetFormColor(colorArray[randmDeger],'',clGNone);
}
 
void sayacArttir;
{
    Inc(sayac);
    if (sayac > 100)
    {
      RndmTimer.Enabled = True;
    }
}

{
  sayac = 0;
  Form1 = TclForm.Create(Self);
  
  RndmTimer = Form1.AddNewTimer(Form1,'RndmTimer',100); 
  RndmTimer.Enabled = False;
  Form1.AddNewEvent(RndmTimer,tbeOnTimer,'randomColor');
  
  oBtn= Form1.AddNewButton(Form1,'oBtn','Başla');
  oBtn.TextSettings.Font.Size=50;
  oBtn.Align = alCenter;
  oBtn.Height = 50;
  oBtn.Width = 100;
  Form1.AddNewEvent(oBtn,tbeOnClick,'sayacArttir');
  
  Form1.Run;
}

Sürekli olarak dendiği için timer kullanılmaktadır. Eğer sadece butona tıklandığında renk değişsin istenirse timer nesnesine ihtiyaç yoktur. 

İyi çalışmalar dilerim.



Düzenleyen Atiker01 - 17 Mayıs 2024 Saat 11:40
Yukarı Dön
emre.gungor01 Açılır Kutu İzle
Deneyimli Üye
Deneyimli Üye


Kayıt Tarihi: 03 Mayıs 2024
Konum: Konya
Durum: Aktif Değil
Puanlar: 46
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı emre.gungor01 Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 17 Mayıs 2024 Saat 14:23
evet doğru, fakat alt tarafta bulunan 
RndmTimer.Enabled = False; kısmını true yaptığım zaman çalışıyor sadece bunun nedeni neden olabilir?
Random görsel koyduğum zamanda da aynısı olmuştu. Aynı sorunu birden çok kez yaşadım ve bunun çözümünün
ne olduğunu bilemiyorum?
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,047 Saniyede Yüklendi.