Beruflich Dokumente
Kultur Dokumente
INDICE
ndice general 1
ndice de figuras
18
Sitios Web
25
Pgina 1
INDICE DE FIGURAS
Figura 01: Pantalla con mensaje explicativo al usuario de la finalidad de la aplicacin experta. 18
Figura 02: Pantalla general de la aplicacin experta
19
20
Pgina 2
22
Pgina 3
Pgina 4
y luego
Pgina 5
Es de inters ahora el archivo TaskMenu.mnu, mediante el cual se puede modificar las opciones
que por defecto implementa Visual Prolog. Entonces primero se hace doble click sobre el archivo
TaskMenu.mnu y luego se eliminar todas las opciones menos File y dentro de esta opcin se
eliminar todas las subopciones menos New y Exit. Luego el archivo TaskMenu.mnu debe
quedar as:
Pgina 6
Pgina 7
En este punto se debe ejecutar nuevamente la aplicacin mediante la opcin Build y luego Build
con lo que se observa la advertencia que no es usado el predicado onHelpAbout. Esto significa
que hay un cdigo asociado a las opciones eliminadas que est dems en el archivo
TaskWindow.pro, de donde debemos eliminar
Luego en el mismo archivo, se debe modificar en el siguiente cdigo, el valor true por false, para
as eliminar la opcin Window la que no se elimina en modo diseo. El cdigo a modificar es:
constants
mdiProperty : boolean = true.
Pgina 8
de la siguiente manera:
predicates
onShow : window::showListener.
clauses
onShow(_, _CreationData).
%_MessageForm = messageForm::display(This).
Pgina 9
En este punto del desarrollo de la aplicacin, se trabajar formateando las opciones de la barra
(men) de herramientas (Toolbar), para lo cual se abre haciendo doble click, el archivo
ProjectToolbar.pro (se encuentra ubicado en la carpeta Toolbars del proyecto), y el cdigo que
deber quedar por el momento, se muestra a continuacin:
implement projectToolbar
open core, vpiDomains, vpiToolbar, resourceIdentifiers
Pgina 10
clauses
create(Parent) :StatusBar = statusBar::newApplicationWindow(),
StatusCell = statusBarCell::new(StatusBar, 0),
StatusBar:cells := [StatusCell],
Toolbar = vpiToolbar::create(style, Parent, controlList),
setStatusHandler(Toolbar, {(Text) :- StatusCell:text := Text}).
% This code is maintained automatically, do not update it manually. 16:42:04-24.4.2013
constants
style : vpiToolbar::style = tb_top().
controlList : vpiToolbar::control_list =
[
tb_ctrl(id_file_new,pushb(),resId(idb_NewFileBitmap),"Nueva consulta;",1,1),
vpiToolbar::separator,
tb_ctrl(id_edit_cut,pushb(),resId(idb_CutBitmap),"Salir;",1,1)
].
% end of automatic code
end implement projectToolbar
La intencin del cdigo anterior es que el usuario pueda accesar a una nueva consulta y salir de la
aplicacin tambin de los botones mostrados en la barra de herramientas del proyecto, es decir,
ProjectToolbar, por lo que luego de grabar los cambios y cerrar las ventanas necesarias, al
ejecutar la aplicacin se debe observar la siguiente interfaz:
Pgina 11
Ahora, para terminar con el formateo del proyecto en funcin del botn opcin Salir del
ProjectToolbar, se va a escribir el cdigo que permitir que cuando se seleccione el botn opcin
en mencin, se pueda salir de la aplicacin. Para esto nos hacemos doble click sobre el archivo
TaskWindow.win, luego abrimos la carpeta Menu, luego abrimos la carpeta ProjectToolbar y
finalmente hacemos doble click sobre id_edit_cut, con lo que aparecer un cdigo del cual solo
nos interesa el que se muestra a continuacin, ya que luego se modificar:
predicates
onEditCut : window::menuItemListener.
clauses
onEditCut(_Source, _MenuTag).
Pgina 12
Al ejecutar la aplicacin, sea al seleccionar la opcin Salir tanto del men principal o el botn
opcin Salir del ProjectToolbar, se debe terminar la ejecucin de la aplicacin. Ahora para
finalizar, como ya se mencion anteriormente, el formateo del proyecto en funcin de las opciones
que presentar al usuario, debemos eliminar: la caja de cerrar, la caja de maximizar y la caja
de minimizar la interfaz, para lo cual, hacemos click con el botn derecho sobre el archivo
TaskWindow.win y luego seleccionamos la opcin Attributes con lo que en la interfaz que
aparece desactivamos las casillas: CloseBox, MaximizeBox y MinimizeBox respectivamente.
Al ejecutar la aplicacin, la interfaz mostrada ser la siguiente:
El paso siguiente es enviar al usuario un mensaje que explique la finalidad de la aplicacin, pero
este mensaje debe aparecer automticamente luego que se muestra la interfaz del punto anterior.
Para esto haciendo click con el botn derecho sobre la carpeta SISTEMA EXPERTO MDICO
EN NEUROLOGA, seleccione la opcin New in New Package y luego elija el objeto Dialog
para luego escribir como nombre del Dialog: dlgmensaje y luego hacer click en el botn Create.
El proceso grficamente se muestra a continuacin:
Tenorio Cabrera Julio Luis
Pgina 13
Pgina 14
Debe eliminar todos los botones que aparecen menos Ok, el cual se renombrar con: Continuar y
luego elija el objeto Static Text y en la propiedad Text escriba un mensaje explicando al usuario
la finalidad del sistema experto. Finalmente cierra el dilogo creado y lo graba.
Pgina 15
Al ejecutar la aplicacin, de aparecer algn mensaje de agregar las libreras necesarias, se hace
click en el botn Add All para que finalmente aparezca automticamente el mensaje creado.
A continuacin se deber crear un dilogo dlgnombre (la propiedad Text de este objeto deber
contener Solicitud de nombre al usuario), con el mismo procedimiento para crear
dlgmensaje, el cual deber quedar sin ningn botn de ventana que trae por defecto el dilogo
dlgnombre. Luego se debe colocar un botn de comando denominado Continuar cuyo nombre
ser btncontinuar_ctl. -- El objetivo de dlgnombre es que el usuario ingrese su nombre en una caja de texto y mientras no
lo haga no se podr continuar. Entonces se debe considerar un objeto tipo Static Text para el
mensaje de: Ingrese su nombre por favor. Debe haber tambin un Edit Control para ingresar
el nombre del usuario, el Edit Control, se llamar ednombre_ctl.
Ahora se debe crear un dilogo llamado dlgbienvenida, mediante el mismo procedimiento que
para crear los dilogos anteriores (recordar haciendo click con el botn derecho sobre la carpeta
MEDICO, seleccione la opcin New in New Package). En este dilogo debe mostrarse un
mensaje de bienvenida al uso del sistema al usuario. Se debe tener en cuenta que en este dilogo
debe capturarse el nombre del usuario ingresado en el dilogo anterior dlgnombre.
Entonces ahora escribir el siguiente cdigo al programar el botn de comando: btncontinuar_ctl,
en el dlgnombre.pro:
predicates
onBtningresarClick : button::clickResponder.
clauses
onBtningresarClick(_Source) = button::defaultAction:Contenido=ednombre_ctl:getText(),
Contenido<>"",
close(),
_ = dlgbienvenida::display(getParent(), ednombre_ctl:getText()),
!.
onBtningresarClick(_Source) = button::defaultAction:vpiCommonDialogs::error("Mensaje del Sistema","Ingrese su nombre").
Pgina 16
En este punto se deber mediante las opciones Consulta y luego Nueva, llamar al dilogo
dlgnombre y para esto, se hace doble click en el archivo TaskWindow.win de la carpeta
TaskWindow, para luego de la interfaz que aparece seleccionar la carpeta Menu, TaskMenu,
id_file y luego hacer doble click sobre id_file_new con lo que se deber completar el cdigo que
aparece por defecto, con el siguiente:
predicates
onFileNew : window::menuItemListener.
clauses
onFileNew(_Source, _MenuTag):_ = dlgnombre::display(This).
Luego al ejecutar la aplicacin, de aparecer algn mensaje de agregar las libreras necesarias, se
hace click en el botn Add All con lo que debera ejecutarse sin ningn problema hasta el punto
desarrollado.
predicates
display : (window Parent, string Name) -> dlgbienvenida Dlgbienvenida.
constructors
new : (window Parent, string Name).
Pgina 17
En el dilogo dlgbienvenida, se coloca un StaticText_ctl, el que debe ser del tipo Fact Variable,
con lo que ahora se llamar: staticText_ctl, quedando la propiedad Text en blanco. Finalmente
debe quedar solo el botn ok_ctl, el cual se renombrar con la propiedad text, con el nombre
Continuar.
En el archivo dlgbienvenida.pro, parte del cdigo a modificar debe quedar as:
clauses
display(Parent,Name) = Dialog :Dialog = new(Parent,Name),
Dialog:show().
facts
name : string.
clauses
new(Parent,Name) :name := Name,
dialog::new(Parent),
generatedInitialize(),
staticText_ctl:setText(string::format("%, te doy la bienvenida,
con gusto te ayudar. Presiona en Continuar por favor.", name)).
Ahora se debe crear un dilogo en el que se realizar las consultas al experto artificial. Este
dilogo se llama dlgconsulta al cul en la propiedad Text se deber escribir: Consultando al
experto. Finalmente a este punto, en el dilogo creado, se cambiar la apariencia del botn Ok
por Salir. En este dilogo dlgconsulta, se debern poner los siguientes controles con sus
respectivas propiedades:
o Un Push Button, el que se denominar btndiagnosticar_ctl.
o Un StaticText_ctl, para que recepcione el nombre del usuario ingresado anteriormente, el
que debe ser del tipo Fact Variable, con lo que ahora se llamar: staticText_ctl, quedando
la propiedad Text en blanco.
Pgina 18
Pgina 19
lbdisponibles_ctl:add("Sntoma_03"),
lbdisponibles_ctl:add("Sntoma_04"),
lbdisponibles_ctl:add("Sntoma_05").
Ahora la idea es que cuando el usuario seleccione (con doble click), un sntoma de
lbdisponibles_ctl, este sea agregado a lbseleccionados_ctl, eliminndose automticamente del
primer List Box y viceversa, es decir si el usuario desea eliminar un sntoma seleccionado de
lbseleccionados_ctl, pues lo debe seleccionar con doble click y automticamente pasar
nuevamente a formar parte de lbdisponibles_ctl. Para esto en la pestaa Events de la caja de
propiedades de lbdisponibles_ctl, se hace doble click sobre el evento DoubleClickListener, con
lo que aparecer el siguiente cdigo:
predicates
onLbdisponiblesDoubleClick : listBox::doubleClickListener.
clauses
onLbdisponiblesDoubleClick(_Source).
Pgina 20
Se debe ahora llamar desde el dilogo dlgbienvenida al dilogo dlgconsulta. Para esto, en el
botn Continuar (es el botn ok_ctl) de dlgbienvenida, poner el siguiente cdigo:
predicates
onOkClick : button::clickResponder.
clauses
onOkClick(_Source) = button::defaultAction:close(),
_ = dlgconsulta::display(getParent(), name),
!.
Pgina 21
predicates
display : (window Parent, string Name) -> dlgconsulta Dlgconsulta.
constructors
new : (window Parent, string Name).
end class dlgconsulta
clauses
display(Parent,Name) = Dialog :Dialog = new(Parent,Name),
Dialog:show().
facts
nam : string.
clauses
new(Parent,Name) :nam:=Name,
dialog::new(Parent),
generatedInitialize(),
staticText_ctl:setText(string::format("%, selecciona los requerimientos requeridos.", n
am)).
Finalmente se debe escribir el cdigo para el botn btndiagnosticar_ctl, para esto se hace doble
click en el botn mencionado con lo que aparecer el siguiente cdigo:
predicates
onBtndiagnosticarClick : button::clickResponder.
clauses
onBtndiagnosticarClick(_Source) = button::defaultAction.
Pgina 22
domains
sintomas = string*.
facts
diagnostico:(sintomas,string,string).
clauses
diagnostico(["Sntoma_01","Sntoma_02","Sntoma_03"],"Enfermedad_01_02_03","Trata
miento_01_02_03").
diagnostico(["Sntoma_04","Sntoma_05"],"Enfermedad_04_05","Tratamiento_04_05").
predicates
onBtndiagnosticarClick : button::clickResponder.
clauses
onBtndiagnosticarClick(_Source) = button::defaultAction:edenfermedad_ctl:setText(""),
edtratamiento_ctl:setText(""),
S=lbseleccionados_ctl:getAll(),
diagnostico(S,E,T),
edenfermedad_ctl:setText(E),
edtratamiento_ctl:setText(T),
!.
onBtndiagnosticarClick(_Source) = button::defaultAction:edenfermedad_ctl:setText(""),
edtratamiento_ctl:setText(""),
vpiCommonDialogs::error("Mensaje del Sistema","No existen respuestas para los snto
mas seleccionados").
Pgina 23
Pgina 24
Pgina 25
Pgina 26
Pgina 27
Pgina 28
Pgina 29
SITIOS WEB
Prolog
Development
Center
(PDC).
[Fecha
en: http://www.visual-prolog.com/
Pgina 30
de
consulta:
15 enero
2013].
Disponible