Bir kontrolün rengini kod ile değiştirmek

TROIA IDE'de tasarım zamanında ayarladığınız kontrol özelliklerini (renk, yazı tipi vb.) çalışma zamanında da değiştirebilirsiniz — bunun için SETSTYLE komutu kullanılır:

SETSTYLE {ozellik} {deger} TO {kontrol};

Sabit renk yerine temadan okumak: GETTHEMEVARIABLE

Rengi doğrudan koda sabit yazmak yerine, o an aktif temadan okumak daha doğru bir yaklaşımdır — böylece kullanıcı temayı değiştirdiğinde kodunuz hâlâ tutarlı görünür:

OBJECT:
    STRING RENK;

RENK = GETTHEMEVARIABLE('HEADERBCK');
SETSTYLE BACKCOLOR RENK TO BUTTON1;

GETTHEMEVARIABLE, "SYST13" ekranında tanımlı tema değişkenlerinden birini (buton, dialog, tablo, toolbar gibi arayüz bileşenlerine göre gruplanmış) okur.

İki tür tema değişkeni

TROIA'da tema değişkenleri iki kategoriye ayrılır:

  • Static (sabit): hangi tema seçili olursa olsun değişmez.
  • Standard: seçili temaya göre farklı değer döner — asıl "tema" kavramını oluşturan bunlardır.

Yeni bir tema oluşturmak ya da mevcut temaları düzenlemek "SYST13" transaction'ından yapılır.

Sonuç

GETTHEMEVARIABLE/SETSTYLE ikilisi, çoğu TROIA geliştiricisinin hiç dokunmadığı ama var olduğunu bilmekte fayda olan küçük bir köşe: bir kontrolün görünümünü, sabit bir renk kodu yerine aktif temaya göre dinamik olarak ayarlamanızı sağlıyor.