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