14 de octubre de 2000

Muestra la barra de tareas de Windows

*!* Muestra la barra de tareas de windows
*!* Sintaxis: ShowTaskBar()
*!* Valor devuelto:
*!* Argumentos:FUNCTION ShowTaskBar
*!* Constantes para ocultar o mostrar la barra de tareas de windows
* Sgte linea notificada por Hugo Ranea 20/06/2001
    #DEFINE TOGGLE_UNHIDEWINDOW    64
    LOCAL lnHwnd
    *!* Valores
    lnHwnd = 0
    *!* Instrucciones DECLARE DLL para manipular la barra de tareas
    DECLARE INTEGER FindWindowA IN Win32API STRING lpClassName,STRING lpWindowName
    DECLARE INTEGER SetWindowPos IN Win32API INTEGER hwnd,;
    INTEGER hwndInsertAfter, INTEGER x, INTEGER y, INTEGER cx,;
    INTEGER cy, INTEGER wFlags
    *!* Valores
    lnHwnd = FindWindowA('Shell_traywnd', '')
    *!* Mostrar la barra de tareas
    IF lnHwnd <> 0
        SetWindowPos(lnHwnd, 0, 0, 0, 0, 0, TOGGLE_UNHIDEWINDOW)
    ENDIF
ENDFUNC
Pablo Roca

23 de septiembre de 2000

Como introducir datos en un editbox en mayusculas

Normalmente en los texbox para introducir los datos, se hace poniéndole en la propiedad format el símbolo !, esto no funciona en los editbox, por lo que se propone aquí dos posibles soluciones para conseguir esto.

Vamos a aprovechar la propiedad format y por tanto solo se pondrá en mayúsculas, si hemos puesto el símbolo ! en el format, para así hacerlo igual que en los texbox.

Solución 1

Poner en el metodo Keypress del editbox:
LPARAMETERS nKeyCode, nShiftAltCtrl
*Brett Hobs & John Koziol
* convierte de a..z, y la ñ
IF '!' $ THIS.FORMAT AND (BETWEEN(nKeyCode,97,122) OR nKeyCode=241)
 nKeyCode=nKeyCode-32
 NODEFAULT
 KEYBOARD CHR(nKeyCode)
ENDIF
Solución 2

Poner en el método InteractiveChange del editbox:
* Mike Helland
local lnSelStart
IF '!' $ THIS.FORMAT
 lnSelStart = this.SelStart
 this.value = UPPER(this.value)
 this.SelStart = lnSelStart
ENDIF

Pablo Roca

24 de mayo de 2000

Convertir los métodos de un formulario en un archivo de procedimientos (.PRG)

Rutina que convierte todos los métodos de un formulario en un archivo de procedimientos .PRG.
*-----------------------------------------------------------
* FUNCTION SCX2PRG(tcForm, tcFile)
*-----------------------------------------------------------
* Pasa todos los métodos de un formulario y sus controles a
* un archivo de procedimientos.
* PARAMETROS:javascript:void(0);
*    tcForm: Ruta y nombre del formulario (.SCX)
*    tcFile: Ruta y nombre del archivo a generar (.PRG)
* AUTOR: LMG
* USO: SCX2PRG("C:\FORMS\FORM1.SCX", "C:\PRGS\METODOS.PRG")
*-----------------------------------------------------------
FUNCTION SCX2PRG(tcForm, tcFile)
  tcForm = FORCEEXT(tcForm, "SCX")
  IF NOT FILE(tcForm)
        MESSAGEBOX("El archivo" + CR + tcForm ;
      + CR + "no existe.", 16, "Aviso")
    RETURN .F.
  ENDIF
  IF EMPTY(tcFile)
    *--- Por defecto genera un PRG  con el
    *--- mismo nombre que el formulario
    tcFile = tcForm
  ENDIF
  tcFile = FORCEEXT(tcFile, "PRG")
  SET TEXTMERGE TO (tcFile) NOSHOW
  SET TEXTMERGE ON
  USE (tcForm) ALIAS MiScx
  \***********************************
  \*** METODOS DEL FORMULARIO
  \*** <<UPPER(tcForm)>>
  \***********************************
  SCAN ALL
    IF NOT EMPTY(MiScx.methods)
      \*-----------------------------------------------
      \*-- <<MiScx.objname>> -- (<<MiScx.Baseclass>>)
      \*------------------------------------------------
      \<<MiScx.methods>>
    ENDIF
  ENDSCAN
  USE IN MiScx
  \***********************************
  \*** FINAL DEL ARCHIVO
  \***********************************
  SET TEXTMERGE OFF
  SET TEXTMERGE TO
  RETURN .T.
ENDFUNC
Luis María Guayán

9 de mayo de 2000

¿Cómo verificar si una tabla está abierta en exclusiva?

Verificar si una tabla está abierta en exclusiva.
*--------------------------------------------------
FUNCTION _Exclusivo(tcTabla)
*--------------------------------------------------
* Verifica si una tabla esta abierta en  EXCLUSIVO
* USO: _Exclusivo("C:\VFP\MiTabla.DBF")
* PARAMETRO:
*    tcTabla = Ruta completa del archivo .DBF
* RETORNO: .T. si se puede abrir en exclusivo
*--------------------------------------------------
LOCAL lnHandle, llRet
lnHandle = FOPEN(tcTabla)
IF lnHandle = -1
   llRet = .F.
ELSE
   llRet = .T.
   =FCLOSE(lnHandle)
ENDIF
RETURN llRet
ENDFUNC
Luis María Guayán

Como hacer un cursor modificable II

Funciín para hacer un cursor modificable
*--------------------------------------------------
FUNCTION _Actualizable(tcAlias)
*--------------------------------------------------
* Hace actualizable un cursor
* USO: _Actualizable("MiCursor")
* PARAMETRO:
*    tcAlias = Alias del cursor
*--------------------------------------------------
 LOCAL lcAliasTmp, lcAliasAnt
 lcAliasAnt = ALIAS()
 IF EMPTY(tcAlias) OR NOT USED(tcAlias)
    WAIT WINDOW NOWAIT " No existe el alias "
    RETURN
 ENDIF
 lcAliasTmp = SYS(2015)
 USE DBF(tcAlias) IN 0 SHARE AGAIN ALIAS (lcAliasTmp)
 USE DBF(lcAliasTmp) IN (tcAlias) SHARE AGAIN ALIAS (tcAlias)
 USE IN (lcAliasTmp)
 IF NOT EMPTY(lcAliasAnt)
    SELECT (lcAliasAnt)
 ENDIF
 RETURN
ENDFUNC
Luis María Guayán