mIRC Dialog Tasarımı: Scriptlerinize Pencere Arayüzü Eklemek
İçindekiler
Script yazarken bir noktada komut satırı yetersiz kalır. Kullanıcının on farklı ayarı değiştirmesi gerekiyorsa, her biri için komut yazmak zahmetlidir. Bir listeden seçim yapması gerekiyorsa metin tabanlı menüler kullanışsızdır. mIRC dialog pencereleri, scriptlerinize gerçek bir grafik arayüz kazandırır: butonlar, metin kutuları, listeler, onay kutuları içeren pencereler tasarlayabilirsiniz.
Dialog Tanımı
Bir dialog, remote bölümünde tanımlanan bir tabloyla oluşturulur:
dialog ayarlar {
title "Script Ayarlari"
size -1 -1 200 150
option dbu
text "Karsilama mesaji:", 1, 10 10 100 10
edit "", 2, 10 22 180 20
check "Karsilama aktif", 3, 10 50 100 10
button "Kaydet", 4, 10 120 60 20, ok
button "Iptal", 5, 80 120 60 20, cancel
}
Yapının parçaları:
- title: Pencerenin başlığı.
- size: Konum ve boyut. Eksi bir değerler ekranda ortalama anlamına gelir.
- option dbu: Boyutların diyalog birimi cinsinden olduğunu belirtir; bu, farklı ekran çözünürlüklerinde tutarlı görünüm sağlar.
- Kontroller: Her satır bir kontrol tanımlar: tür, metin, kimlik numarası, konum ve boyut.
Kimlik numaraları önemlidir: Kontrollere bu numaralarla erişirsiniz ve her numara dialog içinde benzersiz olmalıdır.
Kontrol Türleri
| Tür | Ne işe yarar? |
|---|---|
text | Sabit metin etiketi |
edit | Metin giriş kutusu |
button | Buton |
check | Onay kutusu |
radio | Seçenek düğmesi |
list | Liste kutusu |
combo | Açılır liste |
box | Gruplama çerçevesi |
icon | Simge |
link | Bağlantı metni |
menu | Pencere menüsü |
Kontrollerin ek seçenekleri vardır: Metin kutusu çok satırlı yapılabilir, parola alanı olarak ayarlanabilir, yalnızca sayı kabul edecek şekilde sınırlanabilir. Liste kutusu çoklu seçime açılabilir. Bu seçenekler kontrol tanımının sonuna eklenir.
Dialogu Açmak
alias ayarlar { dialog -m ayarlar ayarlar }
Komutun parametreleri: açılış modu, dialog örneğinin adı ve dialog tanımının adı. Modal açmak (kullanıcının önce pencereyi kapatmasını gerektirmek) veya normal açmak mümkündür. Aynı dialog birden fazla kez açılacaksa örnek adları farklı olmalıdır.
Olayları Yönetmek: on dialog
on *:dialog:ayarlar:*:*: {
if ($devent == init) {
did -ra $dname 2 $readini(ayarlar.ini,Genel,karsilama)
if ($readini(ayarlar.ini,Genel,aktif) == 1) { did -c $dname 3 }
}
if ($devent == sclick) {
if ($did == 4) {
writeini ayarlar.ini Genel karsilama $did(2).text
writeini ayarlar.ini Genel aktif $iif($did(3).state,1,0)
}
}
}
Bu kod, dialog açıldığında ayarları ini dosyasından okuyup kontrollere yerleştirir; Kaydet butonuna tıklandığında değerleri dosyaya yazar. Ini dosyaları için mIRC ini dosyaları yazımıza bakın.
Olay türleri:
| Olay | Ne zaman tetiklenir? |
|---|---|
init | Dialog açıldığında, gösterilmeden önce |
sclick | Bir kontrole tek tıklandığında |
dclick | Çift tıklandığında |
edit | Metin kutusu içeriği değiştiğinde |
menu | Pencere menüsünden seçim yapıldığında |
close | Dialog kapandığında |
mouse | Fare hareket ettiğinde |
$devent olay türünü, $did tıklanan kontrolün numarasını, $dname dialog örneğinin adını verir.
did Komutları
Kontrollere erişmek için did komutu ve identifier'ı kullanılır:
did -ra $dname 2 Yeni metin
did -c $dname 3
did -u $dname 3
did -a $dname 6 Listeye eklenen satir
did -r $dname 6
did -b $dname 4
did -e $dname 4
| Parametre | Ne yapar? |
|---|---|
-a | Ekler |
-r | Temizler |
-ra | Temizleyip ekler |
-c | İşaretler veya seçer |
-u | İşareti kaldırır |
-b | Devre dışı bırakır |
-e | Etkinleştirir |
-h / -v | Gizler / gösterir |
-f | Odağı verir |
Okuma için identifier kullanılır:
$did(2).text
$did(3).state
$did(6).sel
$did(6).lines
Pratik Bir Ayar Penceresi
Gerçek bir ayar penceresi tasarlarken izlenecek yol şudur: Önce hangi ayarları göstereceğinizi listeleyin, ilgili olanları gruplama çerçeveleriyle bir arada toplayın, her ayar için uygun kontrolü seçin (açık kapalı ayarlar için onay kutusu, seçenekler için açılır liste, metinler için giriş kutusu), pencerenin altına Kaydet ve İptal butonları koyun.
Kullanıcı deneyimi açısından önemli ayrıntılar: Pencere açıldığında mevcut ayarlar kontrollere yüklenmiş olmalı; İptal butonu hiçbir değişikliği kaydetmemeli; Kaydet butonu değerleri doğrulamalı ve geçersiz girdide kullanıcıyı uyarmalı. Bir ayarın ne işe yaradığı açık değilse yanına kısa bir açıklama metni eklemek çok işe yarar.
Liste ve Combo Kullanımı
Liste kutuları, kullanıcının bir öğeyi seçmesi gereken durumlar için idealdir: izinli kanallar listesi, yasaklı kelimeler, kayıtlı kullanıcılar. Tipik bir liste yönetim penceresi, liste kutusunun yanında Ekle, Düzenle ve Sil butonları içerir.
Listeyi doldurmak için dialog açılışında verilerinizi okuyup satır satır eklemeniz gerekir. Kullanıcı bir öğe seçtiğinde seçili satırın içeriğini okuyup bir metin kutusuna yerleştirmek, düzenleme akışını doğal hâle getirir.
Açılır listeler ise sabit seçenekler için uygundur: Bir ayarın üç olası değeri varsa onay kutuları yerine açılır liste daha temiz görünür.
Dialogları Tasarlarken
- Boyutları makul tutun: Çok büyük pencereler küçük ekranlarda sorun yaratır.
- Hizalamaya dikkat edin: Kontrollerin aynı dikey hizada başlaması pencereyi düzenli gösterir.
- Gruplama kullanın: İlgili ayarları çerçevelerle gruplamak pencereyi okunabilir kılar.
- Sekmeli yapı: Çok sayıda ayar varsa sekme kontrolüyle sayfalara bölün.
- Varsayılan buton: Enter tuşuna basıldığında hangi butonun çalışacağını belirlemek kullanım kolaylığı sağlar.
- Pencere konumunu hatırlayın: Kullanıcının pencereyi taşıdığı konumu kaydedip bir sonraki açılışta kullanmak düşünceli bir dokunuştur.
Dialog mu, Özel Pencere mi?
mIRC, dialog dışında özel pencereler de oluşturmanıza izin verir. İkisi arasındaki fark şudur: Dialoglar sabit yerleşimli kontroller içerir ve form benzeri işler için uygundur; özel pencereler ise metin akışı, liste görünümü veya grafik çizimi için daha esnektir.
Ayar panelleri, giriş formları ve küçük araçlar için dialog; sürekli güncellenen bilgi ekranları, istatistik görünümleri ve log pencereleri için özel pencere uygundur. Özel pencereler için mIRC özel pencereler yazımıza bakın.
Sık Yapılan Hatalar
- Kimlik numarası çakışması: Aynı numarayı iki kontrole vermek beklenmedik davranışa yol açar.
- init olayını kullanmamak: Dialog açıldığında kontrolleri doldurmayı atlamak.
- Doğrulama yapmamak: Kullanıcının girdiği değerin geçerliliğini kontrol etmemek.
- Koordinat karışıklığı: Kontrollerin üst üste binmesi.
- Dialog adını karıştırmak: Örnek adı ile tanım adını birbirine karıştırmak.
Gerçek Bir Senaryo
Bir scripter, kanal koruma scriptinin on iki ayarını komutlarla yönetiyor. Scripti arkadaşlarıyla paylaştığında herkes komutları hatırlamakta zorlanıyor ve yardım istemek için sürekli ona yazıyorlar. Scripter bir ayar penceresi tasarlıyor: Ayarları üç gruba ayırıyor, her ayarın yanına tek satırlık açıklama ekliyor, sayısal değerler için yalnızca sayı kabul eden kutular kullanıyor ve Kaydet butonunda değerleri doğruluyor. Artık kullanıcılar tek bir komutla pencereyi açıp ayarları kendileri yapıyor ve yardım istekleri neredeyse tamamen kesiliyor.
Sonuç
Dialog pencereleri, scriptlerinizi komut satırı bilmeyen kullanıcılar için de erişilebilir kılar. Tanım tablosunu öğrenin, kontrol türlerini ihtiyaca göre seçin, init olayında mevcut değerleri yükleyin, did komutlarıyla kontrolleri yönetin ve kullanıcı girdisini doğrulayın. Dış dünyayla iletişim kurmak için sıradaki rehberimiz mIRC sockets.
IRC sorunun mu var? Kanalda birlikte çözelim.
💬 Kanala BağlanSıkça Sorulan Sorular
Dialog nedir?
mIRC'te scriptleriniz için oluşturabileceğiniz, butonlar ve metin alanları içeren bir pencere arayüzüdür.
Dialog tanımı nereye yazılır?
Remote bölümüne, dialog bloğu olarak yazılır. Kontroller koordinat ve boyutlarıyla birlikte tanımlanır.
Dialog kontrollerinin değerlerini nasıl okurum?
did identifier'ı ve komutlarıyla kontrollerin içeriğini okuyabilir ve değiştirebilirsiniz.