Otomatik Label rengi değiştirmek

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
apex06
Üye
Mesajlar: 58
Kayıt: 19 Nis 2012 12:21

Otomatik Label rengi değiştirmek

Mesaj gönderen apex06 »

Arkadaşlar merhaba,

Elimde 10 tane Label var. (L0..L9)
Combobox'a da 10 adet item ekledim.

örneğin combobox.itemindex 0 olduğunda L0 font rengi sarı olacak, itemindex 2 olarak değiştiğinde L2 sarı olacak fakat L0 tekrar siyaha dönecek.
Bunu nasıl uygulayabilirim. iç içe if kullandığımda uygulayabiliyorum ama kodum çok uzuyor. bunu döngüye sokabilir miyim?

Teşekkürler
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: Otomatik Label rengi değiştirmek

Mesaj gönderen SimaWB »

benim ilk alıma gelen yöntem:

Kod: Tümünü seç

L0.Color := BaslangicRengi;
L1.Color := BaslangicRengi;
//...
L9.Color := BaslangicRengi;

case Combobox.ItemIndex of
  0 : L0.Color := clYellow;
  1 : L1.Color := clYellow;
  //...
  9 : L9.Color := clYellow;
end;
There's no place like 127.0.0.1
apex06
Üye
Mesajlar: 58
Kayıt: 19 Nis 2012 12:21

Re: Otomatik Label rengi değiştirmek

Mesaj gönderen apex06 »

Bu yöntemide uyguladım fakat combobox.itemindex değişince diğer Label'lerin başlangıç rengini alması lazım, orayı aşamadım.
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: Otomatik Label rengi değiştirmek

Mesaj gönderen SimaWB »

Her renk aslında bir sayısal değerdir.
clYellow = $00FFFF = 65535
gibi.

Her Label'ın başlangıç rengini Label'ın Tag özelliğinde saklayabilirsin.
Daha sonra Combobox'ın OnChange olayında başlangıç renklerine ulaşmak için

Kod: Tümünü seç

L0.Color := TColor(L0.Tag);
şeklinde kullanırsın.
There's no place like 127.0.0.1
apex06
Üye
Mesajlar: 58
Kayıt: 19 Nis 2012 12:21

Re: Otomatik Label rengi değiştirmek

Mesaj gönderen apex06 »

Sorumu tam olarak anlatamadım sanırım yada sizi anlayamadım. :)

şimdi elimde 10 Label var. Hepsinin default rengi siyah.

Kod: Tümünü seç

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
case ComboBox1.ItemIndex of
0:L0.Font.Color:=clYellow;
1:L1.Font.Color:=clYellow;
2:L2.Font.Color:=clYellow;
3:L3.Font.Color:=clYellow;
4:L4.Font.Color:=clYellow;
5:L5.Font.Color:=clYellow;
6:L6.Font.Color:=clYellow;
7:L7.Font.Color:=clYellow;
8:L8.Font.Color:=clYellow;
9:L9.Font.Color:=clYellow;
end;
end;
Case ile ComboBox'tan hangi item seçilmişse ona ait Label rengini sarı yapıyorum. Örneğin cb'dan 4'ü seçtim Label4 Sarı oldu. Sonra vazgeçtim cb'dan 7'yi seçtim. Label7'nin rengi Sarı oldu. Lakin bu durumda Label4'ü tekrar Siyah rengine çevirmesi lazım. Bu durumu başaramadım işte.

Teşekkürler.
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: Otomatik Label rengi değiştirmek

Mesaj gönderen SimaWB »

apex06 yazdı:Sorumu tam olarak anlatamadım sanırım yada sizi anlayamadım. :)

şimdi elimde 10 Label var. Hepsinin default rengi siyah.

Kod: Tümünü seç

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
case ComboBox1.ItemIndex of
0:L0.Font.Color:=clYellow;
1:L1.Font.Color:=clYellow;
2:L2.Font.Color:=clYellow;
3:L3.Font.Color:=clYellow;
4:L4.Font.Color:=clYellow;
5:L5.Font.Color:=clYellow;
6:L6.Font.Color:=clYellow;
7:L7.Font.Color:=clYellow;
8:L8.Font.Color:=clYellow;
9:L9.Font.Color:=clYellow;
end;
end;
Case ile ComboBox'tan hangi item seçilmişse ona ait Label rengini sarı yapıyorum. Örneğin cb'dan 4'ü seçtim Label4 Sarı oldu. Sonra vazgeçtim cb'dan 7'yi seçtim. Label7'nin rengi Sarı oldu. Lakin bu durumda Label4'ü tekrar Siyah rengine çevirmesi lazım. Bu durumu başaramadım işte.

Teşekkürler.
Ben bunun cevabını yukarıda yazdım :!:
There's no place like 127.0.0.1
apex06
Üye
Mesajlar: 58
Kayıt: 19 Nis 2012 12:21

Re: Otomatik Label rengi değiştirmek

Mesaj gönderen apex06 »

ama ben sarı rengini verirken onchance ile yapıyorum. bu durumda if kullanmam lazım orda.
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: Otomatik Label rengi değiştirmek

Mesaj gönderen SimaWB »

apex06 yazdı:ama ben sarı rengini verirken onchance ile yapıyorum. bu durumda if kullanmam lazım orda.
Benim ilk gönderdiğim kodları onChange'de kullanmayı denediniz mi? (Tabi oradaki BaslangicRengi degeri sizin label'ların ilk rengi olacak)
There's no place like 127.0.0.1
apex06
Üye
Mesajlar: 58
Kayıt: 19 Nis 2012 12:21

Re: Otomatik Label rengi değiştirmek

Mesaj gönderen apex06 »

Haklısın kusura bakma, vaktini aldım. Ben başlangıç rengini case 'den sonra almaya çalışıyordum. İlk önce başlangıç rengini vermem lazımdı.
Sorunum halloldu.
Cevapla