İletişim
mIRC Script

mIRC Dialog Tasarımı: Scriptlerinize Pencere Arayüzü Eklemek

· 5 dk okuma

İçindekiler
  1. Dialog Tanımı
  2. Kontrol Türleri
  3. Dialogu Açmak
  4. Olayları Yönetmek: on dialog
  5. did Komutları
  6. Pratik Bir Ayar Penceresi
  7. Liste ve Combo Kullanımı
  8. Dialogları Tasarlarken
  9. Dialog mu, Özel Pencere mi?
  10. Sık Yapılan Hatalar
  11. Gerçek Bir Senaryo
  12. Sonuç

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

Kimlik numaraları önemlidir: Kontrollere bu numaralarla erişirsiniz ve her numara dialog içinde benzersiz olmalıdır.

Kontrol Türleri

TürNe işe yarar?
textSabit metin etiketi
editMetin giriş kutusu
buttonButon
checkOnay kutusu
radioSeçenek düğmesi
listListe kutusu
comboAçılır liste
boxGruplama çerçevesi
iconSimge
linkBağlantı metni
menuPencere 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:

OlayNe zaman tetiklenir?
initDialog açıldığında, gösterilmeden önce
sclickBir kontrole tek tıklandığında
dclickÇift tıklandığında
editMetin kutusu içeriği değiştiğinde
menuPencere menüsünden seçim yapıldığında
closeDialog kapandığında
mouseFare 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
ParametreNe yapar?
-aEkler
-rTemizler
-raTemizleyip ekler
-cİşaretler veya seçer
-uİşareti kaldırır
-bDevre dışı bırakır
-eEtkinleştirir
-h / -vGizler / gösterir
-fOdağı 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

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

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ğlan

Sı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.