Bienvenido y disfruta el nuevo diseño del sitio web.... agradecería me envíes tus comentarios acerca de los cambios realizados

Para descargar cualquier archivo es necesario estar registrado y hacer click en el titulo del archivo a descargar

Guardar y restaurar la configuración de la red de su PC

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Muy buen truco, es ideal para usuarios móviles a
los cuales les toca pegarse a diferentes redes dependiendo de donde se
encuentren, y tienen que cambiar la configuración de su red.





No estoy seguro si funciona en Win9x (lo dudo); pero funciona con XP, 2000





Para guardar la configuración de red a un archivo de texto que luego se pueda
utilizar, se ejecuta el siguiente comando en el MS-DOS o la opción "Ejecutar" de
Windows:



netsh dump > mi_red_cfg.txt



OJO: Que el signo ">" está redirigiendo la salida del comando al archivo "mi_red_cfg.txt".





Ahora si ha Usted le toco cambiar la configuración de su red porque estuvo de
viaje cuando vuelva sólo tiene que cargar la configuración del archivo; de la
siguiente forma desde MS-DOS o la opción "Ejecutar" de Windows:





netsh exec mi_red_cfg.txt

 
Por: David Amador T

Mostrar el cuadro de dialogo "Agregar y quitar programas de Windows"

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Por si acaso deseas mostrar el cuadro de dialogo
"Agregar y quitar programas de Windows" desde tus aplicativos de VFP.


oShell =
CreateObject("WScript.Shell")

oShell.
Run("RunDll32.exe
shell32.dll,Control_RunDLL appwiz.cpl,,0"
)



 

Por: David Amador T

Comprobando cual es más optimo de Alltrim - Transform - Alltrim(Str())

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Otro test para medir cual función (Alltrim -
Transform - Alltrim(Str())) es las más optima. Haremos un ciclo For de 100000
iteraciones para medir el rendimiento de cada una de dichas funciones.



Clear



******************************

* ALLTRIM(TRANSFORM(nCounter))

******************************


Local
nCounter, cResult

x =
Seconds()


For
nCounter = 1
To
1000000

   
cRet =
Alltrim(Transform(nCounter))


EndFor


?
Seconds()
- x && 3.415 Seg



******************************

* TRANSFORM(nCounter)

******************************


x =
Seconds()


For
nCounter = 1
To
1000000

   
cRet =
Transform(nCounter)


EndFor


?
Seconds()
- x && 3.225 Seg

 


******************************

* ALLTRIM(STR(nCounter))

******************************


x =
Seconds()


For
nCounter = 1
To
1000000

   
cRet =
Alltrim(Str(nCounter))


EndFor


?
Seconds()
- x  && 1.552 Seg



 

 


El resultado arrojado es que es más optimo
utilizar ALLTRIM+STR.






Por: David Amador T

¿Cúal es más optimo VARTYPE o TYPE?

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Hace algunos meses Calvin Hsia publicó un post
en su blog en donde comparó las funciones VARTYPE y TYPE para determinar cual de
ella es más optima



Aquí está un ejemplo:





- Utilizando VarType, el tiempo de procesamiento de la prueba fue de 1.382 Seg
(Depende del PC)

nS =
Seconds()

zz =
"a"



For
i = 1
To
1000000

   
cc =
VarType(zz)


EndFor



?
Seconds()
- nS


 

- Utilizando Type, el tiempo de procesamiento
de la prueba fue de 3.024 Seg (Depende del PC)




nS =
Seconds()

zz =
"a"



For
i = 1
To
1000000

   
cc =
Type(zz)


EndFor



?
Seconds()
- nS



Podemos concluir entonces que el VARTYPE es una
función más optimizada que el Type y esto se debe a la compilación que hace está
última a los parámetros pasados



Por: David Amador T

Número de serie del disco duro

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Esta es una de las formas más sencilla de conocer
el serial del disco duro.

cUnidad =
"C:"



=
Messagebox(SerialDisco(cUnidad),0)



Function
SerialDisco(cUnidad)

    Run
VOL &cUnidad > VOL.tmp

   
cUnidad=
Filetostr("vol.tmp")

   
Return Substr(cUnidad,Rat("
"
,cUnidad))


EndFunc


 

 

Por: David Amador T

Barra de progreso con clase de VFP

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Aquí tienes un ejemplo de como hacer una barra de
progreso utilizando la clase que viene con VFP para dicho propósito.


cRutaClase =
Home()+"FFC\_therm.vcx"


cTitulo =
"Ejemplo
de barra de Progreso"



oBarra =
Newobject("_thermometer",cRutaClase,
"",;

                     cTitulo, 100, 1)



With
oBarra

   
.
Visible
= .T.

   
.
Update(10,
"Buscando...")

   
Inkey(.2)
&& Para producir
retardo en el ejemplo

   
.Update(20,
"Paso 1")

   
Inkey(.2)

   
.
Update(40,
"Paso 2")

   
Inkey(.2)

   
.
Update(70,
"Paso 3")

   
Inkey(.2)

   
.
Update(90,
"Paso 4")

   
Inkey(.2)

   
.
Update(100,
"Terminado!")

   
Inkey(.2)

   
.
Release()


Endwith


 

Por: David Amador T

Rotando imágenes con la clase GDI+ de VFP 9

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Otra implementación de la clase GDI que viene con
VFP 9 para el manejo de imágenes; en este caso rotaremos la imagen en diversos
ángulos.


#
Define
RotateNoneFlipNone 0

#
Define
Rotate90FlipNone 1

#
Define
Rotate180FlipNone 2

#
Define
Rotate270FlipNone 3

#
Define
RotateNoneFlipX 4

#
Define
Rotate90FlipX 5

#
Define
Rotate180FlipX 6

#
Define
Rotate270FlipX 7



Local
cOrigen, cDestino


cOrigen = Getpict("jpg;gif;bmp")

cDestino =
JustPath(cOrigen)+"\Rotada_"+JustFname(cOrigen)


oImg = Newobject("GpImage",
HOME()+"ffc\_gdiplus.vcx")



With
oImg

   
.CreateFromFile(cOrigen)

   
.
RotateFlip(Rotate180FlipNone)


   
.SaveToFile(cDestino,
"image/jpeg")


EndWith

Por: David Amador T

Suma de celdas en Excel

Visual Fox Pro, Trucos Comentarios ( 0 ) »
En este ejemplo veremos como podemos realizar
cálculos en Excel a través de automatización.


oExcel =
Createobject("Excel.Application")



With
oExcel

   
.
Visible=.T.

   
.Workbooks.
Add

   
.ActiveWorkbook.Sheets(1).Activate


   
.Cells(3,2) = 10

   
.Cells(4,2) = 26

   
.Cells(5,2) = 63

   
.Cells(6,2) = 42

   
.Cells(7,2) = 1


   
.Cells(9,1) =
"Suma"

    .Cells(9,2).FormulaR1C1 =
"=SUM(R[-6]C:R[-1]C)"


   
.Cells(10,1) =

"Promedio"

   
.Cells(10,2).FormulaR1C1 =
"=AVERAGE(R[-7]C:R[-2]C)"


   
.Cells(11,1) =

"Máximo"

   
.Cells(11,2).FormulaR1C1 =
"=MAX(R[-8]C:R[-3]C)"


   
.Cells(12,1) =

"Mínimo"

   
.Cells(12,2).FormulaR1C1 =
"=MIN(R[-9]C:R[-4]C)"


EndWith


 


Por: David Amador T

Conocer las dimensiones de un gráfica con GDI+

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Utilizaremos la clase de GDI+ que viene con VFP9
para conocer las dimensiones de una imagen
.


oGDI =
Newobject("gpbitmap",
(
Home()+"ffc\_gdiplus.vcx"))


oGDI.CreateFromFile(GetFile("jpg"),
.F.)


? oGDI.ImageHeight

? oGDI.ImageWidth



 


Por: David Amador T

Capturar los eventos del Mouse en el Screen utilizando BindEvent

Visual Fox Pro, Trucos Comentarios ( 0 ) »
El BindEvents es una excelente característica de
las nuevas versiones de VFP; ahora veremos como utilizarla para capturar el
evento DobleClick del Mouse en el Screen de VFP.


Public
oHnd

oHnd =
Newobject("ScreenMov")



Bindevent
(_Screen,
"DblClick",
oHnd,
"DblClick")



Define Class
ScreenMov
As Session

   
Procedure DblClick

       
Wait Window
"Doble
Click"

   
Endproc

EndDefine

Por: David Amador T

Insertando valores DateTime con el VFP OLEDB Provider

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Aquí tiene la forma de actualizar los campos
DateTime cuando utilizamos el OleDB Provider para acceder a tablas de VFP


oConn =
CreateObject("ADODB.Connection")


cRutaDatos = "C:\Datos\TablasLibres"



oConn.
Open("Provider=VFPOLEDB.1;"
+ ;

        "Data Source="
+ cRutaDatos + ;

       
";Collating Sequence=MACHINE")


oConn.Execute("Create
Table Prueba (CmpDateT T)"
)

oConn.Execute(
"Insert
Into Prueba Values (DATETIME())"
)

oConn.Execute(
"Insert
Into Prueba Values ({^2006-10-10 11:11:11 PM})"
)

 

oConn.
Close()



Release oConn




Por: David Amador T

Campos calculados en un grid

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Un ejemplo muy sencillo de como realizar columnas
calculadas en un Grid


Create Cursor
Datos (Numero i, Veces i,
nTotal i)



Insert Into
Datos
Values
(8,0,0)


Insert Into
Datos
Values
(8,2,0)


Insert Into
Datos
Values
(8,5,0)


Insert Into
Datos
Values
(8,1,0)


Insert Into
Datos
Values
(8,0,0)


Insert Into
Datos
Values
(8,3,0)



Go Top In
Datos



Public
oForm

oForm =
Newobject("form")

oForm.
Width
= 400

oForm.
Height
= 400



With
oForm

   
.
AddObject("MiGrid",
"Grid")

   
With
.MiGrid

       
.
Visible
= .T.

       
.
Top
= 5

       
.
Left
= 5

       
.
Width
= 390

       
.
Height
= 390



       
.
RecordSource
=
"Datos"


       
.Column3.
ControlSource
=
"Numero + Veces"

   
Endwith

Endwith



oForm.
Show



Por: David Amador T

Convertir imágenes en otros formato utilizando la clase GDI+ de VFP 9

Visual Fox Pro, Trucos Comentarios ( 0 ) »
En el ejemplo convertiremos un gráfica a formato
bmp, jpg, tif, gif y png



Local
cOrigen, cDestino


cOrigen = GetPict()

cDestino =
JustPath(cOrigen)
+
"\_"
+
JustStem(cOrigen)


oImg = NewObject("GpImage",
Home()
+
"ffc/_gdiplus.vcx")



With
oImg

   
.CreateFromFile(cOrigen)

   
.SaveToFile(cDestino +

".jpg","image/jpeg")

   
.SaveToFile(cDestino +

".bmp","image/bmp")

   
.SaveToFile(cDestino +

".tif","image/tiff")

   
.SaveToFile(cDestino +

".gif","image/gif")

   
.SaveToFile(cDestino +

".png","image/png")


EndWith


 

Por: David Amador T

Obtener la configuración que el usuario tiene en OutLook

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Usted puede conocer la configuración que tiene
establecida en usuario en OutLook de manera sencilla



oCDO =
Createobject("CDO.Configuration")



For Each
oField
In
oCDO.Fields

   
If
!"sendpassword"
$ oField.Name


       
? oField.Name
+
" "+Transform(oField.Value)

   
Endif

Next


Release oCDO


 

Por: David Amador T

Insertar cada línea de un archivo en una tabla

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Este es un buen truco; leemos un archivos y vamos
tomando cada línea del archivo e insertándola en una tabla DBF


Set Memowidth To
8000

cArchivo =
GetFile()



If
!Empty(cArchivo)

    Create Cursor
Datos (TxtLineas m)

   
cText =
FileToStr(cArchivo)

   
nLineas =
Memlines(cText)



   
For
i=1
To
nLineas

       
Insert Into
Datos
Values(Mline(cText,i))

   
Endfor

EndIf

Por: David Amador T