Académique Documents
Professionnel Documents
Culture Documents
com - 2007
AutoLISP / DCL
CAIXAS DE DILOGO
MARCELO SILVA
cracksther@gmail.com
CASCAVEL 2007
CAIXAS DE DILOGO
Exemplo:
(setq dcl-id (load_dialog c:/autolisp/dcl/caixa-01.dcl))
Observaes:
O uso de ; (ponto-e-virgula) no final de todas as
linhas, exceto as que terminam com { ou }, regra
obrigatria.
Em (alert \Funcionou!\) necessrio utilizar \
para representar uma , para evitar o fechamento
precoce da string.
ok_cancel um modelo pr-definido, vide base.dcl.
Os demais itens sero explicados posteriormente.
(Arquivo file-01.lsp)
(defun c:caixa-01 (/ dcl-id)
(setq dcl-id (load_dialog "file-01.dcl")) ;carrega o
arquivo .dcl
(if (not (new_dialog "CAIXA_01" dcl-id))(exit))
;verifica se possvel e inicializa a caixa, caso no
consiga, simplesmente abandona a funo (exit).
(start_dialog) ;inicia interao c/ usurio
(unload_dialog dcl-id) ;descarrega o arquivo .dcl
)
Exerccio:
Adicione ao exemplo anterior um boto chamado
erase, sendo que ao clicar em Ok devem ser
apagados os objetos selecionados a partir do boto
Selection, se o usurio clicar em Cancel, nada deve
ser feito.
Ter um erro fatal no cdigo, tente prever e evitar.
(arquivo file-01.lsp)
(defun c:caixa-03 (/ dcl-id)
(setq dcl-id (load_dialog "file-01.dcl"))
(if (not (new_dialog "CAIXA_03" dcl-id))
(exit)
)
(action_tile "bt_02" "(alert \"Segundo!\")")
(start_dialog)
(unload_dialog dcl-id)
(princ)
)
Onde:
start_image inicia a criao de uma imagem em
uma caixa.
img-01 chave de identificao do componente.
0 0 indicam o inicio da imagem (x1 e y1)
dimx_tile e dimy_tile retornam o comprimento e
altura do componente respectivamente.
x2 y2 indicam o termino da imagem
fig-01 o arquivo .sld que deve estar em uma
pasta com suporte
end_image finaliza a criao da imagem
: image_button // vale o mesmo mtodo de image.
: row // alinha os componentes em linha
: slider // barra deslizante.
: toggle // quadradinho para marcar com V.
: spacer
: spacer_0
: spacer_1
: radio_button
: radio_column
: radio_row
Esses trs componentes definem um conjunto de
botes do tipo radio (bolinhas que ao clicar em uma,
desmarca a outra). Deve-se optar por : radio_row ou
: radio_column, significando optar por botes em linha
ou em coluna respectivamente
: radio_row {
: radio_button {
label = boto 01;
key = bt-01;
action = (setq val-bt 1);
}
: radio_button {
label = boto 02;
key = bt-02;
action = (alert \Teste\);
}
}