GrandMA2'de Koşullu (If/Else) Macro Yazımı
GrandMA2 konsolunda If/Else koşullu ifadelerini kullanarak akıllı ve esnek macrolar nasıl yazılır, adım adım öğrenin.
GrandMA2 Macro Sisteminde Koşullu Mantık
GrandMA2'nin macro motoru, yalnızca komut sıralamasından ibaret değildir. Koşullu ifadeler sayesinde bir macro, çalışma anındaki durumu okuyabilir ve farklı senaryolara göre farklı aksiyonlar alabilir. Bu yaklaşım, show dosyalarını hem daha güvenli hem de çok daha akıllı hale getirir.
If/Else Yapısının Temelleri
GrandMA2 macro satırlarında koşullu kontrol için If komutu kullanılır. Temel sözdizimi şu şekildedir:
If [koşul] Then [komut1] Else [komut2]Bu yapıda konsol önce köşeli parantez içindeki koşulu değerlendirir; koşul doğruysa Then bloğu, yanlışsa Else bloğu çalışır. Else bloğu zorunlu değildir; yalnızca ihtiyaç duyulduğunda eklenir.
Pratik Bir Örnek: Executor Aktif mi?
Sık kullanılan senaryolardan biri, bir executor'ın o an çalışıp çalışmadığını kontrol etmektir. Aşağıdaki macro satırı bunu gerçekleştirir:
If (GetVar 'Page1.Ex1.IsActive' == 1) Then Go Executor 1 Page 1 Else Off Executor 1 Page 1Konsol bu satırı okuduğunda Executor 1'in aktif olup olmadığını sorgular. Aktifse Go komutu ile devam eder, değilse Off komutu ile kapatır. Tek bir macro butonu bu sayede toggle işlevi görür.
Değişkenlerle Koşul Kullanmak
GrandMA2'de SetVar ve GetVar komutlarıyla kullanıcı değişkenleri tanımlanabilir. Bu değişkenler koşullu mantığın en güçlü aracıdır.
- Önce bir değişken tanımlayın:
SetVar 'SahneModu' 0 - Macro içinde değeri kontrol edin:
If (GetVar 'SahneModu' == 0) Then ... - Bloğun sonunda değişkeni güncelleyin:
SetVar 'SahneModu' 1
Bu döngüsel yapı, aynı macro butonunun her basışta farklı bir sahne moduna geçmesini sağlar.
Çoklu Koşullar: And / Or Kullanımı
Birden fazla koşulu aynı anda değerlendirmek için And ve Or operatörleri kullanılır:
If (GetVar 'SahneModu' == 1 And GetVar 'HazirFlag' == 1) Then Go Sequence 5Bu satır, ancak her iki koşul da doğruysa Sequence 5'i başlatır. Or kullanıldığında ise koşullardan herhangi birinin sağlanması yeterlidir.
Sık Yapılan Hatalar
- Değişken adlarında büyük/küçük harf tutarsızlığı — GrandMA2 değişken isimlerini case-sensitive olarak işler.
ThenveElsearasına yanlışlıkla satır sonu eklenmesi — tüm yapı tek bir macro satırında olmalıdır.- Koşul bloğunun sonunda değişkeni güncellemeyi unutmak, macro'nun sonraki çalışmasında yanlış dalı takip etmesine yol açar.
- Karmaşık koşullarda parantez eksikliği — operatör önceliği beklenmedik sonuçlar doğurabilir.
İpucu: Koşullu macro'larınızı geliştirirken GrandMA2'nin Macro Editor penceresindeki Test butonunu kullanın. Her adımı ayrı ayrı test etmek, hata ayıklama sürecini önemli ölçüde kısaltır.
Okunabilirlik İçin Label Kullanımı
Uzun koşullu macro'larda her satıra anlamlı bir Label eklemek, ileride bakım yaparken büyük kolaylık sağlar. Macro Editor'de satır başlığına çift tıklayarak label girebilirsiniz. // SahneModu toggle kontrol gibi açıklayıcı etiketler, özellikle ekip çalışmalarında show dosyasının sürdürülebilirliğini artırır.