Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
UNIDAD I
TEMAS:
1.1 Personalización del menú del programa Idrisi.
1.2 Conexión del programa Idrisi con el Delphi 6.0.
1.3 Utilización de la librería Idrisi.
Nota: Traducción realizada por el profesor de la materia a partir del original “IDRISI
Applications Programming Interface User’s Guide” (2003), pero con ejemplos
propios en algunos casos. Para una referencia completa se recomienda consultar el
original.
1
Facultad de Geografía, Universidad Autónoma del Estado de México
Profesor: Luis Ricardo Manzano Solís
Octubre-Noviembre de 2007
Apuntes de la materia de Programación en Ambiente SIG
Especialización en Cartografía Automatizada, Teledetección y SIG
UNIDA I. Personalización del programa Idrisi
La estructura de Extensions.Lst es una lista simple en formato ASCII. Cada línea enlista
un archivo de texto de menú (sin su extensión .Imn) ordenado de manera tal como se
desea producir el menú final. El archivo original Extensions.Lst que viene con Idrisi
contiene lo siguiente:
Las primeras dos líneas de un archivo .Imn proporciona la información general sobre la
extensión:
La siguiente sección del .Imn contiene la lista de acciones (Action List). El nombre a la
izquierda del signo igual (=) es el nombre de la acción (Action Name). A la derecha del
mismo signo igual se encuentra el nombre del DLL o EXE, seguido por el nombre de la
función para llamarlo, seguido a su vez por un parámetro opcional. En el caso de diálogos
estándar de Idrisi, este último parámetro es un número que se refiere al dialogo particular
dentro de un DLL. Algunos de los diálogos están contenidos en el ejecutable principal de
Idrisi y están referidos como tales. De otra forma, estos son referenciados mediante un
DLL o EXE específico. Por ejemplo:
2
Facultad de Geografía, Universidad Autónoma del Estado de México
Profesor: Luis Ricardo Manzano Solís
Octubre-Noviembre de 2007
Apuntes de la materia de Programación en Ambiente SIG
Especialización en Cartografía Automatizada, Teledetección y SIG
UNIDA I. Personalización del programa Idrisi
MI_ACCION=MI_EJECUTABLE.EXE
3
Facultad de Geografía, Universidad Autónoma del Estado de México
Profesor: Luis Ricardo Manzano Solís
Octubre-Noviembre de 2007
Apuntes de la materia de Programación en Ambiente SIG
Especialización en Cartografía Automatizada, Teledetección y SIG
UNIDA I. Personalización del programa Idrisi
BEGINMENU
INSERTIONDEPTH 1 //use zero if top level menu item (usar cero si se trata de un elemento de menu superior)
IdrMenuAnalysis //caption of menu item to be inserted under (título o leyenda del elemento de menú bajo el cual es
insertado este menú, esto es, nombre del menú del que se
desprende este submenú)
ITEMNAME ANALYSISMENUDatabaseQuery
ITEMCAPTION Database Query //caption of first item (título del primer elemento)
ACTION 0 //this one does no action so its action code is zero (este no es una acción, por lo tanto su código de acción es
cero)
HELPCONTEXT 0 //'0' means not yet linked (significa que no está vinculado)
BEGINBRANCH
ITEMNAME ANALYSISMENUReclass //Any unique name that makes sense (un nombre único que sea
significativo)
ITEMCAPTION RECLASS //This is what appears in the menu (esto es lo que aparece en el menú)
ACTION ANALYSIS_RECLASS //This refers to the action list above (se refiere a la acción mencionada arriba,
en la lista de acciones)
HELPCONTEXT 0
ITEMNAME ANALYSISMENUOverlay
ITEMCAPTION OVERLAY
ACTION ANALYSIS_OVERLAY
HELPCONTEXT 0
ITEMNAME ANALYSISMENUCrosstab
ITEMCAPTION CROSSTAB
ACTION ANALYSIS_CROSSTAB
HELPCONTEXT 0
MENUBREAK
ITEMNAME ANALYSISMENUEdit
ITEMCAPTION Edit
ACTION ANALYSIS_EDIT
HELPCONTEXT 0
ENDBRANCH
ITEMNAME ANALYSISMENUMathematicalOperators
ITEMCAPTION Mathematical Operators
ACTION 0
HELPCONTEXT 0
BEGINBRANCH
ITEMNAME ANALYSISMENUOverlay2
ITEMCAPTION OVERLAY
ACTION ANALYSIS_OVERLAY
HELPCONTEXT 0
ITEMNAME ANALYSISMENUScalar
ITEMCAPTION SCALAR
ACTION ANALYSIS_SCALAR
HELPCONTEXT 0
END BRANCH
ENDMENU
4
Facultad de Geografía, Universidad Autónoma del Estado de México
Profesor: Luis Ricardo Manzano Solís
Octubre-Noviembre de 2007
Apuntes de la materia de Programación en Ambiente SIG
Especialización en Cartografía Automatizada, Teledetección y SIG
UNIDA I. Personalización del programa Idrisi
Nota: El API trabaja con todas las versiones de Idrisi de 32 bits, incluyendo Idrisi uno, dos,
Kilimajaro (14) y Andes (15).
INTRODUCCIÓN
Idrisi ha sido diseñado como un servidor de automatización OLE usando tecnología COM
Object (Objeto COM). Como consecuencia, es posible emplear lenguajes de desarrollo de
alto nivel, tales como Delphi, Visual C++, Visual Basic o Visual Basic para Aplicaciones
(VBA) como macrolenguajes para controlar las operaciones de Idrisi. En resumen, se
pueden crear sofisticadas aplicaciones de Controlador de Automatización OLE que tienen
completo control sobre el funcionamiento de Idrisi.
INICIO RÁPIDO
Una vez que ha sido instalada la librería de Idrisi, cualquiera de los métodos o
propiedades incluidos con Idrisi puede ser usado con únicamente escribir el nombre de
la referencia de objeto de Idrisi (Idrisi object reference), seguida por un punto, seguida
por el nombre del método o propiedad (method o property) con sus parámetros
(parameters). Por ejmplo:
5
Facultad de Geografía, Universidad Autónoma del Estado de México
Profesor: Luis Ricardo Manzano Solís
Octubre-Noviembre de 2007
Apuntes de la materia de Programación en Ambiente SIG
Especialización en Cartografía Automatizada, Teledetección y SIG
UNIDA I. Personalización del programa Idrisi
En la mayoría de los ambientes de programación se podrá notar que tan pronto como
se teclea un punto después de la referencia del objeto de Idrisi (Idrisi object reference),
se despliega una lista de funciones desde la librería entre las cuales se puede elegir la
deseada para cierta función. Posteriormente, tan pronto como se teclea el paréntesis de
apertura de los parámetros (después del nombre de la función) inmediatamente se
enlistan todos los parámetros requeridos junto con su tipo de dato.
El método RunModule tiene una opción de espera que causa que un programa espere
hasta que una operación en Idrisi finalice antes de ir a la siguiente línea de código del
programa.
6
Facultad de Geografía, Universidad Autónoma del Estado de México
Profesor: Luis Ricardo Manzano Solís
Octubre-Noviembre de 2007
Apuntes de la materia de Programación en Ambiente SIG
Especialización en Cartografía Automatizada, Teledetección y SIG
UNIDA I. Personalización del programa Idrisi
WrkFld:=Idrisi32.GetWorkingDir
Y usar esta variable para referirse a esta carpeta cada vez que se requiera y así no estar
invocando el método en cada momento.
Se puede observar que existen algunos métodos de la librería de Idrisi que no están
documentados en el documento de la API de Idrisi. Esto se debe a que estos son sólo
para uso interno de Idrisi y, por tanto, no deben ser empleados en las aplicaciones
personales.
Paso 1. Instalar la Librería de Tipo de Idrisi (esto se realiza sólo una vez)
Con esto se tendrá acceso a la librería de Idrisi en cualquier proyecto de Delphi que se creé.
PASO 2. Usar la librería de Idrisi (será necesario hacer esto para cada nuevo
proyecto dentro de Delphi)
Dentro de cualquier proyecto de Delphi que necesite acceder a Idrisi es necesario incluir la
siguiente declaración en “Uses”:
Uses IDRISI32_tbl;
Var
IDRISI32:IIdrisiApiServer;
Var
IdrAPI:IIdrisiApiServer;
IDRISI32:CoIdrisiApiServer.Create;
IdrAPI: CoIdrisiApiServer.Create;
Se puede acceder ahora cualquier propiedad o método dado por Idrisi con simplemente
referir el objeto IDRISI32 (IdrAPI, para la clase), seguido por un punto, seguido por el
nombre del método o propiedad y el o los parámetros requeridos. Por ejemplo, para una
variable llamada “Working_Folder”:
Working_Folder:=IDRISI32.GetWorkingDir;
Working_Folder:=IdrAPI.GetWorkingDir;
IDRISI32:=nil;
IdrAPI:=nil;
Con esta última operación se remueve un proceso de usuario como cliente de IDRISI 32 (o
IdrAPI, para la clase PASIG). Esto permite que IDRISI32 (o IdrAPI) sea finalizado o
desconectado cuando ya no se ocupa más dentro de una aplicación.
8
Facultad de Geografía, Universidad Autónoma del Estado de México
Profesor: Luis Ricardo Manzano Solís
Octubre-Noviembre de 2007