Ejemplo TTray leyendo archivos

Post Reply
Enrrique Vertiz
Posts: 440
Joined: Fri Oct 07, 2005 2:17 pm
Location: Lima - Peru
Contact:

Ejemplo TTray leyendo archivos

Post by Enrrique Vertiz »

Saludos estimados,

Estoy buscando ejemplos para hacer un programa residente que lea cada X cantidad de segundos una carpeta, el TestTray, es un buen comienzo, pero crea un Menu, no hay otro ejemplo con una idea similar a lo que busco, gracias
Enrrique Vertiz Pitta
Lima-Peru
xHb 1.23, Fwh 20.04, MySQL 5.7 - 8.0, SQLLIB 1.9m, SQLRDD
VitalJavier
Posts: 188
Joined: Mon Jun 10, 2013 6:40 pm

Re: Ejemplo TTray leyendo archivos

Post by VitalJavier »

Enrique, te pongo aquí algo de lo que tengo :

Code: Select all

FUNCTION Main()

    DEFINE ICON oIcon  RESOURCE "Z_IPS"
    DEFINE ICON oIcon1 FILE "..\icons\folder.ico"   
    DEFINE WINDOW oWnd Title "Sistema Empresarial, Enviando Archivos de Recargas"       
    ACTIVATE WINDOW oWnd ON INIT (RETORNA_IPPUB(),oTray := TTrayIcon():New( oWnd, oIcon, "Enviando Archivos de Recargas...",;
             { || MsgInfo( "Enviando Archivos de Recargas...","Enviando" ) },;
             { | nRow, nCol | MenuTray( nRow, nCol, oTray, oWnd ) } ),VerificaIPPub(@oTimer),oTimer:Activate()) ;
   VALID oTray:End() ON RIGHT CLICK oTray:SetIcon( oIcon1, "Another" )      
    Cerrar()                              
RETURN .T.

FUNCTION MenuTray( nRow, nCol, oTray , oWnd)
   LOCAL oMenu
   MENU oMenu POPUP
      MENUITEM "Muestra Aplicacion" ACTION oWnd:Show(), oWnd:SetFocus()
      MENUITEM "Oculta Aplicacion"  ACTION oWnd:Hide()
      SEPARATOR
      MENUITEM "Cierra Aplicacion" ACTION oWnd:end()
   ENDMENU
   ACTIVATE POPUP oMenu AT nRow, nCol OF oTray:oWnd
RETURN .T.

FUNCTION VERIFICAIPPUB(oTimerActual)
    DEFINE TIMER oTimerActual INTERVAL 60000 ACTION RETORNA_IPPUB() OF oWnd
RETURN .T.
 
Espero y te sirva. Saludos.
User avatar
Armando
Posts: 2479
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Contact:

Re: Ejemplo TTray leyendo archivos

Post by Armando »

Enrique:

Te va otro ejemplo.

Code: Select all

.....
.....
ACTIVATE WINDOW oWindow MAXIMIZED VALID Cerrar() ON INIT Tiempo()


/*
* --------------------------------------------------------------------------*
* --------------------------------------------------------------------------*
*/
STATIC FUNCTION Tiempo()
    LOCAL nIntervalo := 60000 * oRsEmp:Fields("EMP_ACM"):Value

    IF nIntervalo > 0
        // 60,000 milesimas es igual a 1 minuto, se crea y se activa solo una vez
        DEFINE TIMER oTimer OF oWindow INTERVAL nIntervalo ACTION Ventana() // 600000 es igual a 10 minutos

        oTimer:Activate()
    ENDIF
RETURN(NIL)
 
Activado el TIMER, cada n milésimas de segundo se ejecuta la función Ventana(),
modifica la función Ventana() a tus necesidades

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Enrrique Vertiz
Posts: 440
Joined: Fri Oct 07, 2005 2:17 pm
Location: Lima - Peru
Contact:

Re: Ejemplo TTray leyendo archivos

Post by Enrrique Vertiz »

Javier, Armando

Gracias a ambos por sus ejemplos, aplicare _ y los probare ...
Muchas gracias nuevamente
Enrrique Vertiz Pitta
Lima-Peru
xHb 1.23, Fwh 20.04, MySQL 5.7 - 8.0, SQLLIB 1.9m, SQLRDD
User avatar
FranciscoA
Posts: 1964
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Ejemplo TTray leyendo archivos

Post by FranciscoA »

Hola, aqui tienes otro ejemplo.

Code: Select all

//---------------------//
FUNCTION AvisaMf()
local oDlg
LOCAL oTimer, nInterval := 60000 * .50

local cNombServ := "SERVIDOR", cDir := "PRUEBAS"
local cPathF := "\\"+cNombServ+"\"+cDir    
local cTable := "TUTABLA"
local nRegis := 0

if !file(cPathF+"\"+cTable+".dbf")
   MsgStop("No se encontro tabla "+ cPathF+"\"+cTable+".dbf" + " Revise y reintente")
   return nil
endif

dbusearea(.t.,,(cPathF)+"\"+(cTable),(cTable),.t.)
if neterr()
   MsgStop("Hey... No se puede usar en este momento, la tabla "+cPathF+"\"+cTable)
   return nil
endif
nRegis := (cTable)->(Reccount())
(cTable)->(dbclosearea())

   DEFINE DIALOG oDlg SIZE 400,200 PIXEL

   ACTIVATE DIALOG oDlg CENTERED ;
        ON INIT  TmrDocs(@oTimer,nInterval,@nRegis,cPathF,cTable)

        oTimer:End()
RETURN(NIL)

//-------------------------------------------------------
Function TmrDocs(oTimer,nInterval,nRegis,cPathF,cTable)
      DEFINE TIMER oTimer INTERVAL nInterval ACTION DctoModifi(cPathF,cTable,@nRegis)
      ACTIVATE TIMER oTimer
      Eval( oTimer:bAction )
Return nil


//----------------------------
Function DctoModifi(cPathF,cTable,nRegis)
local nRegistActual

dbusearea(.t.,,(cPathF)+"\"+(cTable),(cTable),.t.)
if neterr()
   MsgStop("No se puede usar en este momento, la tabla "+cPathF+"\"+cTable)
   return nil
endif
nRegistActual := (cTable)->(Reccount())

if nRegistActual != nRegis
   MsgInfo("Hay modificaciones")
   nRegis := nRegistActual
else
   MsgInfo("No ha habido modificaciones")
endif

(cTable)->(dbclosearea())

Return nil
Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh1204-MySql-TMySql
Post Reply