Agradecimentos à Rul3z por ter feito este tutorial.

DIALOGS
    As dialogs foram uma inovação do mIRC 5.5x, com elas o mIRC-scripting avançou e muito, afinal dialogs tornam a aparência do script bem mais profissional, parecendo verdadeiros programas.

    Para quem um dia usou o 'disease/x' se lembra bem dos 'paineis de controle' em .exe, com as dialogs é possivel se criar 'paineis de controle' como aqueles ou até melhores, pois quem se lembra haviam muitos conflitos quando se executava mais de um mIRC junto.

O primeiro passo para a criação de dialogs é 'desenha-la', exemplo:


[remote]

dialog teste {
title "dialog de teste"
size -1 -1 200 200
button 'ok', 1, 5 5 190 190, ok
}

    E depois executá-la, através do comando /dialog -m nomedadialog tabeladadialog' no caso 'nomedadialog' você pode escolher o que quiser(isso só irá interferir na hora de se criar os eventos) já na 'tabeladadialog' você deve usar o nome que empregou na hora de desenhá-la, no caso 'teste'.

Os elementos na hora de se desenhar uma dialog são:

title "titulo"
é o titulo da dialog
size "distancia em relacao a lateral esquerda, distancia em relacao ao cabeçalho, largura, altura"
se você utilizar -1 como distância em relação a lateral e a borda superior, a dialog ficará centralizada. 

     Antes de prosseguirmos é bom entendermos o que é o 'id' em uma dialog, o elemento 'button' (botão) no primeiro exemplo necessita de um 'id' para ser identificado mais tarde, no caso foi designado a ele o id '1'. Nos próximos elementos a serem explicados trataremos a distância em relação a borda esquerda da dialog e da borda superior da mesma como 'x' e 'y', respectivamente. E a largura de um elemento e sua altura como 'w' e 'h'.

text "texto", id, x y w h, estilo(right,center)
- Cria um texto na dialog, em estilo você pode escolher um alinhamento a direita ou centralizado, o padrão é o alinhamento a esquerda.

edit "texto", id, x y w h, estilo(right,center,multi,pass,read,return, hsbar, vsbar, autohs, autovs)
- Cria uma editbox, que é o espaço onde você pode digitar seus textos, o estilo 'pass' mostra tudo o que é digitado como '*'. Geralmente não se coloca nada como texto(deixando como "")

button "texto", id, x y w h, estilo(default,ok,cancel)
- Cria um botão, o estilo 'ok' fecha a dialog já o 'cancel' cancela todas as operações da mesma, fechando-a em seguida.

check "texto", id, x y w h, estilo(left,push,3state) 
- Cria uma caixa de checagem, em estilo o '3 state' tem três estágios, checado, checado em cinza, não-checado.

radio "texto", id, x y w h, estilo(left,push)
- Cria uma caixa de opção, daquelas que quando você marca uma ela desmarca as demais.

box "texto", id, x y w h
- Cria uma 'box' que nada mais é do que um 'quadrado' sua unica utilidade é realmente 'enfeitar'.

list id, x y w h, estilo(sort, extsel, size, vsbar)
- Cria uma lista, no estilo de uma /window -l

combo id, x y w h, estilo(sort, edit, drop, size, vsbar)
- Cria uma 'combo' que nada mais é do que uma list em apenas uma linha.

icon x y w h, icone
- Insere um ícone(.ico) na dialog, para se criar/editar um icone você pode utilizar o microangelo ou o resource workshop.

[ Evento ON DIALOG ]

     O evento on dialog cria a possibilidade de se definir %variaveis e executar comandos em uma dialog, o formato básico é:

on *:dialog:nome-da-dialog:evento:id:{ echo -a estou executando o evento $devent na $dname no id $did }

Um evento muito utilizado é o de quando se inicia uma dialog, no caso:

on *:dialog:nome-da-dialog:init:0:{
comandos
}

Como eventos podemos utilizar:

init -> inicialização da dialog(nesse caso o id é 0)
edit -> quando uma edit/combo é editada 
sclick -> quando um click é dado sobre um elemento da dialog
dclick -> quando um duplo-click é dado sobre um elemento da dialog

Para retornar o que existe em cada elemento usamos o identificador $did, exemplo:

on *:dialog:teste:sclick:1:{ echo -s texto: $did(teste,1).text }

Formatos possíveis:
$did(nome da dialog,id).text -> retorna o texto
$did(nome da dialog,id).len -> retorna o tamanho da linha
$did(nome da dialog,id).sel -> retorna a linha seleciona em uma list/combo
$did(nome da dialog,id).state -> em uma checkbox/radiobox retorna se a mesma está seleciona(retorna 1) ou não(retorna 0)
$did(nome da dialog,id).next -> retorna o id do próximo elemento(por tab)
$did(nome da dialog,id).prev -> retorna o id do elemento anterior(por tab)
$did(nome da dialog,id).visible -> retorna $true se o elemento está visível e $false se não
$did(nome da dialog,id).enabled -> retorna $true se o elemento está ativado e $false se não

Temos ainda o identificador $dialog que retorna informações a respeito da dialog, exemplos:

$dialog(nome da dialog).title -> retorna o titulo da dialog
$dialog(nome da dialog).modal -> retorna $true se a dialog está ativa ou $false se não.
$dialog(nome da dialog).table -> retorna a tabela da dialog
$dialog(nome da dialog).ok -> retorna o id do botão ok
$dialog(nome da dialog).cancel -> retorna o id do botão cancelar
$dialog(nome da dialog).result -> retorna o id do botão result

Você ainda pode utilizar '.x .y .w .h' para mostrar o tamanho da dialog.

[ /dialog ] 
     No início do tutorial falamos do comando '/dialog' para se 'abrir' uma dialog, vejamos então os outros parâmetros que podem ser usados:

-x -> fecha a dialog
-d -> abre uma dialog 'desktop'(usado em conjunto com o -m)
-t -> modifica o titulo da dialog(/dialog -t nomedadialog novo titulo)
-s -> modifica o tamanho/local da dialog(/dialog -s x y w h)
-o -> liga o 'ontop', colocando a dialog no topo das demais
-n -> desliga o 'ontop'
-k -> executa o botão 'ok'
-c -> executa o botão 'cancelar'


[ /did ]

O comando /did é utilizado para modificar os elementos de um dialog, os parâmetros são:

-e -> ativa um elemento(/did -e nome-da-dialog id)
-b -> desativa um elemento(/did -b nome-da-dialog id)
-v -> torna um elemento escondido visivel(/did -v nome-da-dialog id)
-h -> torna um elemento invisivel(/did -v nome-da-dialog id)
-n -> ativa uma editbox(/did -n nome-da-dialog id)
-m -> desativa uma editbox(/did -m nome-daialog id)
-c -> ativa uma checkbox/radiobox ou um item de uma list/combo(/did -c nome-da-dialog id)
-u -> contrário do -c 
-r -> limpa todo o texto do elemento(/did -r nome-da-dialog id)
-a -> adiciona um texto ao elemento(/did -a nome-da-dialog id texto)
-d -> remove uma linha de um texto de um elemento(/did -d nome-da-dialog id linha)
-i -> insere uma linha de um texto em um elemento(/did -i nome-da-dialog id linha texto)
-o -> substitui todo o texto do elemento pelo novo(/did -o nome-da-dialog id novo texto)
-g -> modifica um ícone/bitmap(/dialog -g nome-da-dialog id novo icone)


[ dicas ]

     Muitas vezes ocorrem erros como 'can't use $? in a dialog' quando você tenta usar '$?=".."' em uma dialog, para enganar o mIRC podendo-se usar $?, $dir, $?! basta ativar o comando por um timer, exemplo:

on *:dialog:teste:2:{ .timer -m 1 1 set %a $$?="texto:" }

O parâmetro -m no /timer indica que são milésimos, tornando o /timer mais rápido.


Quando há erros como 'invalide table' tente retirá-los tomando como base os princípios de que é OBRIGATÓRIO haver ou um 'ok' ou um 'cancelar'.

NOTA: Existe um programa com interface RAD para a criação de dialogs para mIRC. Esse programa está disponível para download, basta você clicar aqui.

 

Está página é parte integrante da www.riomafra.com.br - canal #RioMafra / Rede BrasIRC

Direitos autorais do texto: Rul3z

Introdução

Aliases

Popups

Remote

Users

Variables

Dialogs