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" var1

Burada 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:

  1. Macro editörünü açın: Menu > Macro yolunu izleyin.
  2. Yeni bir macro oluşturun ve ilk satıra şu komutu ekleyin:
    Input "Fade süresi (saniye)?" FadeTime
  3. İ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" GrupNo
Input "Hedef yoğunluk (0-100)?" Yogunluk
Group $GrupNo At $Yogunluk

Varsayı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 2
Input "Fade süresi (varsayılan: 2sn)?" FadeTime

Bu 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)" Onay
If $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: fadeTime ile FadeTime farklı 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.