Etiqueta

27 enero 2016

Uso de las funciones strpbrk() y strspn()

Encuentro especialmente útil su uso para comprobar si los valores almacenados en una variable cumplen con un determinado patrón.

El formato de la primera función es strpbrk(cadena1,cadena2), ¿Qué hace?


Devuelve una subcadena de cadena1, desde el punto en que cualquiera de los caracteres de cadena2 sea localizado en cadena1. Si ninguno de los caracteres de cadena2 coincide con los de cadena1, la función nos devolverá una cadena vacía.

Veamos un ejemplo:

Supongamos que disponemos de un campo de entrada en el que sólo deseamos permitir el uso de letras no acentuadas, números y comas, es decir sin caracteres especiales. Un modo de impedirlo sería mediante el método siguiente:

On evKey
    If len(strpbrk(upp(pKey),'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789,'))=0&len(pKey)>0
        Quit event handler (Discard event)
    End If


Si pKey contiene (por ejemplo) el caracter #, la función strpbrk() anterior devolvería una cadena vacía, ya que el caracter # no está contenido la cadena: ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789,

El uso de "Quit event handler (Discard event)" anulará la introducción del caracter #. La comparación "len(pKey)>0" se ha añadido para evitar el uso de "SystemKey events" o dicho de otro modo, la generación de eventos del sistema mediante el teclado.

El formato de la segunda es strspn(cadena1,cadena2), ¿Qué hace?


Devuelve el índice del primer carácter de cadena1, no coincidente con los contenidos en cadena2. Si todos los caracteres son coincidentes, la función devolverá el valor correspondiente al "len(cadena1)+1", es decir la longitud de cadena1 más uno.

Si (por ejemplo) quisiéramos comprobar que todos los caracteres contenidos en una determinada cadena coincidan con los permitidos, podríamos usar lo siguiente:

If strspn(upp(NumeroDeTelefono),'0123456789() -/')>len(NumeroDeTelefono)
    ; Todos los caracteres de variable NumeroDeTelefono
    ; pertenecen o están contenidos en el grupo 0123456789() -/
End If


Suponiendo que NumeroDeTelefono="01\5551234", la función strspn() anterior devolvería '3', ya que el tercer carácter no está entre el grupo de los permitidos, pero si su valor fuera NumeroDeTelefono="01/5551234" la función strspn() devolvería '11', ya que su longitud es '10'.

20 enero 2016

Como abrir documentos en Mac OS y en Windows, desde Omnis.

Abrir documentos en Mac OS.


Calculate applescript as con('property target_URL : "', lvpath,'"',kCr,'open location target_URL')
Do method $doApplescript (applescript,results) Returns #F


Si lvpath es 'file://pathtofile') --≥ abre un archivo
Si lvpath es 'http://www.myurl.org/path.html' --≥ abre el navegador
Si lvpath es 'mailto:name@email.com'  --≥ abre el cliente e-mail
Si lvpath es 'feed:rssfeed path'  --≥ abre el lector de rss

Abrir documentos en Windows.


Calculate lvPath as 'C:\Users\Tom\Downloads\demo\demo.html'
Register DLL ("SHELL32.DLL","ShellExecuteW","JJCCCCJ")
Call DLL ("SHELL32.DLL","ShellExecuteW",0,"open",lvPath,"","",0) Returns lvHandle



13 enero 2016

Tabla de componentes externos

Bajo el directorio "xcomp" del raíz de instalación Omnis, podemos observar una larga lista de al menos 120 componentes, pero... ¿Donde pueden usarse y con qué propósito?

A continuación os dejo una tabla que he confeccionado, donde indico, donde puede ser usado un determinado componente y cual es su propósito, para conocer detalles específicos sobre su uso les recomiendo que utilicen el "Interface Manager".


NOMBRE

NO-VISUALES

VENTANAS

INFORMES

WEB

IOS

USO

Accordion Library



X







Presenta una lista de opciones hipervínculo, que se expandne para mostrar más información.

AMAZONDAM

X









Acceso base de datos AMAZON.

BlowFish Library

X









Permite cifrar y descifrar contraseñas.

Calendar Library



X

X





Presenta el mes en curso y la fecha de actual, en un formato de calendario estándar.

Clock Library



X







Permite visualizar la hora actual, teniendo en cuenta la zona horaria actual del cliente.

Cool DropList Library



X







Permite listas desplegable de iconos, estilos de líneas, y otros.

Document Viewer Library



X

X





Visor de documentos Omnis

FadePict Library



X







Permite aplicar un efecto de fundido a una imagen mientras se carga, dispone de más de 30 estilos diferentes.

FileList Library



X







Pueden mostrar el contenido de una carpeta, ya sea en un formato de lista estándar o como una lista desplegable

FileOps

X









Permite gestionar archivos.

FishEye Library



X







Muestra una fila o columna con iconos clicables.

Flic Library



X







Permite cargar y presentar archivos de películas de tipo “flc” y "fli”.

FontOps

X









Permite gestionar fuentes.

FORMROLL Library



X







Botón gráfico, que se pone de relieve cuando el usuario pasa el ratón sobre él.

Gif Library



X

X





Utilizado para guardar y mostrar archivos “GIF” animados o estáticos.

Graph2 Library

X

X

X





Programación de gráficas.

Help utilities



X







Gestión de textos y documentos de ayuda.

HOTPICT Library



X







Permite crear áreas "clicables" sobre fotos, mapas e ilustraciones.

HTML Device





X





Permite visualizar documentos HTML.

HYPLINKS Library



X







Permite crear hipervínculos al estilo de la web.

iActivity









X

Componente para iOS

iButton









X

Componente para iOS

IconArray Library



X







Permite mostrar listas de elementos, identificados mediante iconos.

iDateTime









X

Componente para iOS

iImageView









X

Componente para iOS

iLabel









X

Componente para iOS

iMap









X

Componente para iOS

iNavigationbar









X

Componente para iOS

iPage









X

Componente para iOS

iProgress









X

Componente para iOS

iSearchBar









X

Componente para iOS

iSegmented









X

Componente para iOS

iSlider









X

Componente para iOS

iSwitch









X

Componente para iOS

iTabbar









X

Componente para iOS

iTable









X

Componente para iOS

iTextField









X

Componente para iOS

iTextView









X

Componente para iOS

iWebView









X

Componente para iOS

JavaCore

X









Motor java de Omnis

JavaObjs Library

X









Objetos Java

JDBCDAM

X









Acceso base de datos mediante JDBC.

JPEG Library



X

X





Permite guardar y mostrar gráficos en formato JPEG.

jsActivity







X



Componente JavaScript.

jsBack







X



Componente JavaScript.

jsButton







X



Componente JavaScript.

jsCheckbox







X



Componente JavaScript.

jschrt1







X



Componente JavaScript.

jschrt2







X



Componente JavaScript.

jsComboBox







X



Componente JavaScript.

jsDatePicker







X



Componente JavaScript.

jsDevice







X



Componente JavaScript.

jsDgrd







X



Componente JavaScript.

jsDropList







X



Componente JavaScript.

jsEdit







X



Componente JavaScript.

jsFile







X



Componente JavaScript.

jsHtml







X



Componente JavaScript.

jsHypl







X



Componente JavaScript.

jsLabel







X



Componente JavaScript.

jsList







X



Componente JavaScript.

jsmap







X



Componente JavaScript.

jsNativeList







X



Componente JavaScript.

jsNativeSlider







X



Componente JavaScript.

jsNativeSwitch







X



Componente JavaScript.

jsNavbar







X



Componente JavaScript.

jsNavMenu







X



Componente JavaScript.

jsPage







X



Componente JavaScript.

jsPict







X



Componente JavaScript.

jsPopm







X



Componente JavaScript.

jsProg







X



Componente JavaScript.

jsRadioGroup







X



Componente JavaScript.

jsRich







X



Componente JavaScript.

jsSlider







X



Componente JavaScript.

jsSwitch







X



Componente JavaScript.

jsTabs







X



Componente JavaScript.

jsTimer







X



Componente JavaScript.

jsTrans







X



Componente JavaScript.

jsTree







X



Componente JavaScript.

jsVideo







X



Componente JavaScript.

Marquee Library



X







Permite la visualización en desplazamiento continuo áreas de texto.

MYSQLDAM

X









Acceso base de datos MYSQL.

Navigation Menu Library



X







Permite crear menús en cascada interactivos.

NPAPI Library



X







Componenete NPAPI

ODBCDAM

X









Acceso base de datos mediante ODBC.

OJSON

X









Gestión de documentos JSON

Omnis PDF Device

X









Gestión de documentos PDF

OmnisIcn Library



X







Permite mostrar cualquier icono de los existentes en “OmnisPIC”, “USERPIC”, o “#ICONS”.

OMSQLDAM

X









Acceso base de datos df1 mediante SQL.

ORACLE8DAM

X









Acceso base de datos ORACLE.

OWEB

X









Implemetación del protocolo HTML

OXML

X









Gestión de documentos XML

PCX Library



X

X





Permite visualizar imágenes PCX.

PGSQLDAM

X









Acceso base de datos POSTGRE.

PicList Library



X







Permite mostrar cualquier icono de los existentes en “OmnisPIC”, “USERPIC”, o “#ICONS”.

PortProfile

X









Configuración de puertos de comunicación.

Progress Library



X







Permite visualizar una barra de progreso

QuickTime3 Library



X







Gestión de documentos Quick Time.

RegAdmin

X









Permite el acceso al registro del sistema.

Report Lists Library





X





Muestra una variable de tipo "list" en un informe.

Report Object Library





X





Permite incrustar clases "report" en ventanas.

RTF Device

X









Permite mostrar archivos RTF.

Sidebar Library



X







Permite visualizar una serie de iconos o botones en una barra vertical.

Slider Library



X







Proporciona un deslizador gráfico graduado, que el usuario podrá modificar.

SpreadSheet Grid Library



X







Funciona como una hoja de cálculo de sólo lectura, con los datos contenidos en una variable de tipo "list".

SQLITEDAM

X









Acceso base de datos SQLITE.

Stix Library



X







Control Stix

StringTable

X

X

X





Permite la localización de etiquetas en diferentes idiomas.

SYBASEDAM

X









Acceso base de datos SYBASE.

TabBar Library



X







Presenta una serie de “thumb tabs” o pestañas, sobre las que el usuario podrá hacer clic.

Tile Library



X







Permite mostrar un icono que se propagará, sobre toda la zona.

Timer Library

X

X







Proporciona un temporizador de segundos o milisegundos.

ToolPal Library



X







Control tool pal

Tooltip Library



X







Control de tool tip's

TransButton Library



X







Implementa un “rollover” de tipo botón.

Transform Library



X







Permite efectos de animación y transformación.

Tree Library



X







Proporciona una forma gráfica de mostrar elementos u opciones dispuestos en forma de árbol.

Wash Library



X







Permite añadir un efecto de degradado de color, sobre toda la zona.

WAV Library

X

X







Permite cargar y reproducir archivos de sonido en formato “WAV”.

WBMP Library

X









Permite cargar y reproducir archivos de imagen en formato “WBMP”.

Zoom Library



X







Permite ampliar áreas de la pantalla.