GrandMA3 Macro ile Kullanıcı Girişi Alma (Input Komutu)
GrandMA3 macro'larında kullanıcıdan dinamik veri almanın yollarını öğrenin: Input komutu, değişkenler ve pratik örnekler.
Macro İçinde Kullanıcı Girişi Neden Gereklidir?
GrandMA3 macro'ları genellikle sabit komutlar dizisi olarak çalışır. Ancak bazen bir macro'nun çalışma anında kullanıcıdan bilgi alması gerekir: hangi fixture grubu seçilecek, kaç saniye süreyle fade yapılacak veya hangi preset uygulanacak gibi. Bu dinamik yapıyı sağlamak için Input komutu ve değişkenler (variables) kullanılır.
Temel Yapı: Input Komutu
Input komutu, macro çalışırken ekranda bir diyalog kutusu açarak kullanıcının değer girmesini bekler. Girilen değer bir değişkene atanır ve macro'nun sonraki adımlarında kullanılabilir.
Temel sözdizimi şu şekildedir:
Input "Sorunuzu buraya yazın" var1Burada var1, kullanıcının girdiği değeri taşıyacak olan değişken adıdır. Değişken adları harf ile başlamalı ve boşluk içermemelidir.
Adım Adım Örnek: Fade Süresi Soran Macro
Aşağıdaki örnek, kullanıcıdan bir fade süresi alarak aktif seçime uygular:
- Macro editörünü açın:
Menu > Macroyolunu izleyin. - Yeni bir macro oluşturun ve ilk satıra şu komutu ekleyin:
Input "Fade süresi (saniye)?" FadeTime - İkinci satıra değişkeni kullanan komutu ekleyin:
Attribute "Dimmer" At 100 Fade $FadeTime
İpucu: Değişkeni komut içinde kullanırken başına $ işareti koymanız şarttır. Aksi hâlde sistem bunu değişken olarak değil, metin olarak yorumlar.
Birden Fazla Kullanıcı Girişi Almak
Tek bir macro'da birden fazla Input satırı kullanabilirsiniz. Her satır ayrı bir değişkene yazar ve kullanıcıya sırayla sorular gösterilir.
Input "Grup numarasını girin" GrupNoInput "Hedef yoğunluk (0-100)?" YogunlukGroup $GrupNo At $YogunlukVarsayılan Değer Tanımlamak
Kullanıcı diyalog kutusunu boş geçerse macro hata verebilir. Bunu önlemek için SetVar komutuyla değişkene önceden bir varsayılan değer atayabilirsiniz:
SetVar FadeTime 2Input "Fade süresi (varsayılan: 2sn)?" FadeTimeBu sayede kullanıcı boş geçse bile macro FadeTime değişkenini 2 olarak kullanmaya devam eder.
Koşullu Mantıkla Birleştirmek
Input ile alınan değerleri If komutuyla birleştirerek akıllı macro'lar oluşturabilirsiniz:
Input "Sahneyi sıfırla? (1=Evet / 0=Hayir)" OnayIf $Onay Eq 1 Do "ClearAll"Bu yapı, kullanıcının verdiği yanıta göre macro'nun farklı yollar izlemesini sağlar. Özellikle show başlangıç ve bitiş rutinlerinde sık kullanılan bir tekniktir.
Dikkat Edilmesi Gereken Noktalar
- Değişken adları büyük/küçük harf duyarlıdır:
fadeTimeileFadeTimefarklı değişkenlerdir. - Input komutu macro'yu duraklatır; kullanıcı değer girmeden macro ilerlemez.
- Sayısal işlemlerde tam sayı girildiğinden emin olmak için kullanıcıya açıklayıcı bir soru metni yazın.
- Show esnasında dikkat dağıtmamak için Input içeren macro'lar genellikle hazırlık aşamasında çalıştırılır.