BIENVENIDOS A MI BLOG

Translate

jueves, 19 de febrero de 2015

PROGRAMA PRG HACER CAPTURA DE VIDEO O FOTO CON LA WEBCAM

***PROGRAMA  PRG  HACER CAPTURA DE VIDEO O FOTO CON LA WEBCAM 
***VISUAL FOXPRO 9.0 
 



*!* IMAGECAPTURE.PRG
*!* Author : Gelson L. Bremm 
*!* Description : Captures any image on the screen 

PUBLIC oCapturaImg 
oCapturaImg = CREATEOBJECT("CapturaImagem") 
oCapturaImg.Show() 

DEFINE CLASS CapturaImagem AS Form 
   Height = 147 
   Width = 115 
   Desktop = .T. 
   ShowWindow = 2 
   DoCreate = .T. 
   ShowTips = .T. 
   AutoCenter = .T. 
   Caption = "Capture" 
   HalfHeightCaption = .T. 
   MaxButton = .F. 
   MinButton = .F. 
   MinHeight = 80 
   AlwaysOnTop = .T. 
   Name = "CAPTURE" 

   ADD OBJECT Command1 AS myCmdButton 

   PROCEDURE Init 
      WITH THIS 
         .DeclareFunctions() 
         .Resize() 
      ENDWITH 
   ENDPROC 

   PROCEDURE SetTransparent 
      LOCAL lnControlBottom, lnControlRight, lnControlLeft, lnControlTop, lnBorderWidth, ; 
      lnTitleHeight, lnFormHeight, lnFormWidth, lnInnerRgn, lnOuterRgn, lnCombinedRgn, ; 
      lnControlRgn, lnControl, lnRgnDiff, lnRgnOr, llTrue 

      lnRgnDiff = 4 
      lnRgnOr = 2 
      llTrue = -1 

      WITH THIS 
         lnBorderWidth = SYSMETRIC(3) 
         lnTitleHeight = SYSMETRIC(9)-SYSMETRIC(4) 
         lnFormWidth = .Width + (lnBorderWidth * 2) 
         lnFormHeight = .Height + lnTitleHeight + lnBorderWidth 
         lnOuterRgn = CreateRectRgn(0, 0, lnFormWidth, lnFormHeight) 
         lnInnerRgn = CreateRectRgn(lnBorderWidth, lnTitleHeight, ; 
         lnFormWidth - lnBorderWidth, lnFormHeight - lnBorderWidth) 
         lnCombinedRgn = CreateRectRgn(0, 0, 0, 0) 
         CombineRgn(lnCombinedRgn, lnOuterRgn, lnInnerRgn, lnRgnDiff) 
         FOR EACH Control in .Controls 
            lnControlLeft = Control.Left + lnBorderWidth 
            lnControlTop = Control.Top + lnTitleHeight 
            lnControlRight = Control.Width + lnControlLeft 
            lnControlBottom = Control.Height + lnControlTop 
            lnControlRgn = CreateRectRgn(lnControlLeft, lnControlTop, lnControlRight, lnControlBottom) 
            CombineRgn(lnCombinedRgn, lnCombinedRgn, lnControlRgn, lnRgnOr) 
         ENDFOR 
         SetWindowRgn(.HWnd , lnCombinedRgn, llTrue) 
      ENDWITH 
   ENDPROC 
    
   PROCEDURE num2dword 
      LPARAMETERS lnValue 

      #DEFINE m0       256 
      #DEFINE m1     65536 
      #DEFINE m2  16777216 

      LOCAL b0, b1, b2, b3 

      b3 = INT(lnValue/m2) 
      b2 = INT((lnValue - b3*m2)/m1) 
      b1 = INT((lnValue - b3*m2 - b2*m1)/m0) 
      b0 = MOD(lnValue, m0) 

      RETURN(CHR(b0)+CHR(b1)+CHR(b2)+CHR(b3)) 
   ENDPROC 

   PROCEDURE declarefunctions 
      DECLARE INTEGER CombineRgn in "gdi32" integer hDestRgn, integer hRgn1, integer hRgn2, integer nMode 
      DECLARE INTEGER CreateRectRgn in "gdi32" integer X1, integer Y1, integer X2, integer Y2 
      DECLARE INTEGER SetWindowRgn in "user32" integer hwnd, integer hRgn, integer nRedraw 

      DECLARE INTEGER SelectObject IN gdi32 integer hdc, integer hObject 
      DECLARE INTEGER ReleaseDC IN user32 INTEGER hwnd, INTEGER hdc  
      DECLARE INTEGER CreateCompatibleDC IN gdi32 INTEGER hdc 
      DECLARE INTEGER DeleteObject IN gdi32 INTEGER hObject 
      DECLARE INTEGER DeleteDC IN gdi32 INTEGER hdc 
      DECLARE INTEGER CloseClipboard IN user32  
      DECLARE INTEGER GetFocus IN user32  
      DECLARE INTEGER EmptyClipboard IN user32  
      DECLARE INTEGER GetWindowDC IN user32 INTEGER hwnd  
      DECLARE INTEGER OpenClipboard IN user32 INTEGER hwnd  
      DECLARE INTEGER SetClipboardData IN user32 INTEGER wFormat, INTEGER hMem 
      DECLARE INTEGER CreateCompatibleBitmap IN gdi32; 
            INTEGER hdc, INTEGER nWidth, INTEGER nHeight 
      DECLARE INTEGER BitBlt IN gdi32; 
            INTEGER hDestDC, INTEGER x, INTEGER y,; 
            INTEGER nWidth, INTEGER nHeight, INTEGER hSrcDC,; 
            INTEGER xSrc, INTEGER ySrc, INTEGER dwRop 

      DECLARE INTEGER GetActiveWindow IN user32 
      DECLARE INTEGER GetClipboardData IN user32 INTEGER uFormat 
      DECLARE INTEGER GlobalAlloc IN kernel32 INTEGER wFlags, INTEGER dwBytes  
      DECLARE INTEGER GlobalFree IN kernel32 INTEGER hMem 

      DECLARE INTEGER GetObject IN gdi32 AS GetObjectA; 
          INTEGER hgdiobj, INTEGER cbBuffer, STRING @lpvObject 

      DECLARE INTEGER GetObjectType IN gdi32 INTEGER h 

      DECLARE RtlZeroMemory IN kernel32 As ZeroMemory; 
          INTEGER dest, INTEGER numBytes 

      DECLARE INTEGER GetDIBits IN gdi32; 
          INTEGER hdc, INTEGER hbmp, INTEGER uStartScan,; 
          INTEGER cScanLines, INTEGER lpvBits, STRING @lpbi,; 
          INTEGER uUsage 

      DECLARE INTEGER CreateFile IN kernel32; 
          STRING lpFileName, INTEGER dwDesiredAccess,; 
          INTEGER dwShareMode, INTEGER lpSecurityAttr,; 
          INTEGER dwCreationDisp, INTEGER dwFlagsAndAttrs,; 
          INTEGER hTemplateFile 

      DECLARE INTEGER CloseHandle IN kernel32 INTEGER hObject 

      DECLARE Sleep IN kernel32 INTEGER dwMilliseconds 
   ENDPROC 

   PROCEDURE CopyToClipBoard 
      WITH THIS 
         .Caption = "Capturing" 
         .Command1.Left = .Width+.Command1.Width 
         .Cls() 
         .SetTransparent() 
         =Sleep(100) 

         #DEFINE CF_BITMAP   2 
         #DEFINE SRCCOPY      13369376 
          
         lnLeft = SYSMETRIC(3) 
         lnTop = SYSMETRIC(4)+(SYSMETRIC(20)-SYSMETRIC(11)) 
         lnRight = 0 
         lnBottom = 0 
         lnWidth = .Width 
         lnHeight = .Height-1 

         *hwnd = GetFocus() 
         hdc = GetWindowDC(.HWnd)    
         hVdc = CreateCompatibleDC(hdc) 
         hBitmap = CreateCompatibleBitmap(hdc, lnWidth, lnHeight) 

         = SelectObject(hVdc, hBitmap) 
         = BitBlt(hVdc, 0, 0, lnWidth, lnHeight, hdc, lnLeft, lnTop, SRCCOPY) 
         = OpenClipboard(.HWnd) 
         = EmptyClipboard() 
         = SetClipboardData(CF_BITMAP, hBitmap) 
         = CloseClipboard() 
         = DeleteObject(hBitmap) 
         = DeleteDC(hVdc) 
         = ReleaseDC(.HWnd, hdc) 
          
         .Command1.Left = VAL(.Command1.Tag) 
         .SetTransparent() 
         .Caption = "Capture" 
      ENDWITH 
   ENDPROC 
    
   PROCEDURE CopyToFile 
      #DEFINE CF_BITMAP   2 
      #DEFINE SRCCOPY     13369376 
      #DEFINE OBJ_BITMAP    7 
      #DEFINE DIB_RGB_COLORS   0 
      #DEFINE BFHDR_SIZE      14 
      #DEFINE BHDR_SIZE       40 
      #DEFINE GENERIC_WRITE          1073741824 
      #DEFINE FILE_SHARE_WRITE                2 
      #DEFINE CREATE_ALWAYS                   2 
      #DEFINE FILE_ATTRIBUTE_NORMAL         128 
      #DEFINE INVALID_HANDLE_VALUE           -1 
      #DEFINE BITMAP_STRU_SIZE   24 
      #DEFINE BI_RGB         0 
      #DEFINE RGBQUAD_SIZE   4 
      #DEFINE BHDR_SIZE     40 
      #DEFINE GMEM_FIXED   0 

      LOCAL cDefault, cNameFile, hClipBmp 
      LOCAL pnWidth, pnHeight, pnBitsSize, pnRgbQuadSize, pnBytesPerScan 
      LOCAL hFile, lnFileSize, lnOffBits, lcBFileHdr 
      LOCAL lnBitsPerPixel, lcBIHdr, lcRgbQuad 
      LOCAL lpBitsArray, lcBInfo 
      LOCAL hdc, hMemDC, lcBuffer 

      cDefault = FULLPATH(SYS(5)) 
      cNameFile = GETPICT("BMP") 
      SET DEFAULT TO (cDefault) 
      IF EMPTY(cNameFile) 
         RETURN 
      ENDIF 

      IF FILE(cNameFile) 
         IF MESSAGEBOX("This forlder already contains a file called '"+PROPER(JUSTFNAME(cNameFile))+"'"+CHR(13)+"Overwrite the existing file ?",36+256,"Confirm overwriting") = 7 
            RETURN 
         ENDIF 
      ENDIF 
      ERASE (cNameFile) 

      WITH THIS 
         .CopyToClipBoard() 
          
         = OpenClipboard (0)  
         hClipBmp = GetClipboardData (CF_BITMAP) 
         = CloseClipboard() 

         IF hClipBmp = 0 Or GetObjectType(hClipBmp) # OBJ_BITMAP 
            =MESSAGEBOX("There is no image stored in the clipboard.",48,"Error creating file") 
            RETURN 
         ENDIF 
               
         STORE 0 TO pnWidth, pnHeight, pnBytesPerScan, pnBitsSize, pnRgbQuadSize 
         lcBuffer = REPLI(CHR(0), BITMAP_STRU_SIZE) 
         IF GetObjectA (hClipBmp, BITMAP_STRU_SIZE, @lcBuffer) # 0 
            pnWidth  = ASC(SUBSTR(lcBuffer, 5,1)) + ; 
                      ASC(SUBSTR(lcBuffer, 6,1)) * 256 +; 
                      ASC(SUBSTR(lcBuffer, 7,1)) * 65536 +; 
                      ASC(SUBSTR(lcBuffer, 8,1)) * 16777216 
             
            pnHeight = ASC(SUBSTR(lcBuffer, 9,1)) + ; 
                      ASC(SUBSTR(lcBuffer, 10,1)) * 256 +; 
                      ASC(SUBSTR(lcBuffer, 11,1)) * 65536 +; 
                      ASC(SUBSTR(lcBuffer, 12,1)) * 16777216 
         ENDIF 

         lnBitsPerPixel = 24 
         pnBytesPerScan = INT((pnWidth * lnBitsPerPixel)/8) 
         IF MOD(pnBytesPerScan, 4) # 0 
            pnBytesPerScan = pnBytesPerScan + 4 - MOD(pnBytesPerScan, 4) 
         ENDIF 

         lcBIHdr = .num2dword(BHDR_SIZE) + .num2dword(pnWidth) +; 
                 .num2dword(pnHeight) + (CHR(MOD(1,256))+CHR(INT(1/256))) + (CHR(MOD(lnBitsPerPixel,256))+CHR(INT(lnBitsPerPixel/256))) +; 
                 .num2dword(BI_RGB) + REPLI(CHR(0), 20) 

         IF lnBitsPerPixel <= 8 
            pnRgbQuadSize = (2^lnBitsPerPixel) * RGBQUAD_SIZE 
            lcRgbQuad = REPLI(CHR(0), pnRgbQuadSize) 
         ELSE 
            lcRgbQuad = "" 
         ENDIF 
         lcBInfo = lcBIHdr + lcRgbQuad 
         pnBitsSize = pnHeight * pnBytesPerScan 
         lpBitsArray = GlobalAlloc (GMEM_FIXED, pnBitsSize) 
         = ZeroMemory (lpBitsArray, pnBitsSize) 

         *hwnd = GetActiveWindow() 
         hdc = GetWindowDC(.HWnd) 
         hMemDC = CreateCompatibleDC (hdc) 
         = ReleaseDC (.HWnd, hdc) 
         = GetDIBits (hMemDC, hClipBmp, 0, pnHeight, lpBitsArray, @lcBInfo, DIB_RGB_COLORS) 

         lnFileSize = BFHDR_SIZE + BHDR_SIZE + pnRgbQuadSize + pnBitsSize 
         lnOffBits = BFHDR_SIZE + BHDR_SIZE + pnRgbQuadSize 
         lcBFileHdr = "BM" + .num2dword(lnFileSize) + .num2dword(0) + .num2dword(lnOffBits) 

         hFile = CreateFile (cNameFile, GENERIC_WRITE, FILE_SHARE_WRITE, 0, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0) 

         IF hFile # INVALID_HANDLE_VALUE 
            DECLARE INTEGER WriteFile IN kernel32; 
               INTEGER hFile, STRING @lpBuffer, INTEGER nBt2Write,; 
               INTEGER @lpBtWritten, INTEGER lpOverlapped 
            = WriteFile (hFile, @lcBFileHdr, Len(lcBFileHdr), 0, 0) 
            = WriteFile (hFile, @lcBInfo, Len(lcBInfo), 0, 0) 

            DECLARE INTEGER WriteFile IN kernel32; 
               INTEGER hFile, INTEGER lpBuffer, INTEGER nBt2Write,; 
               INTEGER @lpBtWritten, INTEGER lpOverlapped 
            = WriteFile (hFile, lpBitsArray, pnBitsSize, 0, 0) 
            = CloseHandle (hFile) 
         ELSE 
            = MESSAGEBOX("Error creating file: " + cNameFile, "Operação não concluída") 
         ENDIF 

         = GlobalFree(lpBitsArray) 
         = DeleteDC (hMemDC) 
         = DeleteObject (hClipBmp) 
      ENDWITH 
   ENDPROC 

   PROCEDURE Resize 
      WITH THIS 
         .Command1.Left = .Width-.Command1.Width 
         .Command1.Top = .Height-.Command1.Height 
         .Command1.Tag = ALLT(STR(.Command1.Left)) 

         .SetTransparent() 
      ENDWITH 
   ENDPROC 
    
   PROCEDURE Destroy 
      oCapturaImg = .F. 
      RELEASE oCapturaImg    
   ENDPROC 
ENDDEFINE 

DEFINE CLASS myCmdButton AS Commandbutton 
   Top = 126 
   Left = 97 
   Height = 21 
   Width = 18 
   FontName = "Webdings" 
   Caption = "6" 
   ToolTipText = "Opções" 
   Name = "Command1" 

   PROCEDURE Click 
      cOptMenu = "" 
      DEFINE POPUP _menu_clip SHORTCUT RELATIVE FROM MROW(), MCOL() 
      DEFINE BAR       CNTBAR("_menu_clip")+1 OF _menu_clip PROMPT "Copy to Clipboard" 
      ON SELECTION BAR CNTBAR("_menu_clip")   OF _menu_clip        cOptMenu = "CLIPBOARD" 
      DEFINE BAR       CNTBAR("_menu_clip")+1 OF _menu_clip PROMPT "Copy to File" 
      ON SELECTION BAR CNTBAR("_menu_clip")   OF _menu_clip        cOptMenu = "FILE" 
      ACTIVATE POPUP _menu_clip 
      RELEASE POPUPS _menu_clip 

      DO CASE 
         CASE cOptMenu == "CLIPBOARD" 
            THISFORM.CopyToClipBoard() 

         CASE cOptMenu == "FILE" 
            THISFORM.CopyToFile() 
      ENDCASE 
   ENDPROC 
ENDDEFINE


viernes, 13 de febrero de 2015

Descarga de Visual FoxPro 9.0 Portable

====Link de la Descarga de Visual  FoxPro  9.0  Portable====

Mediafire:  http://adf.ly/pYzLQ

====Serial de Activacion de Visual  FoxPro  9.0====

Claves del producto: 
W7YCJ-2RRMD-MMHGG-3MB7C-VBMYB
FHWKK-TG326-9B7HP-PYJ9J-PWGTX

viernes, 6 de febrero de 2015

CALCULADORA VFP 9.0

CALCULADORA

HOY APRENDEREMOS COMO HACER UNA CALCULADORA VIRTUAL EN VISUAL FOXPRO 9.0

VAMOS A HACER LA CALCULADORA EN  EN EL PROGRAMA VISUAL FOXPRO 9.0
UTILIZANDO LOS CONOCIMIENTOS APRENDIDOS EN CLASE 

1.- ABRIR EL PROGRAMA VISUAL FOXPRO 9.0
2.- PROCEDEMOS A INTRODUCIR EN DONDE QUEREMOS GUARDAR EL PROYECTO Y DIGITAMOS LO SIGUENTE EN LA VENTANA DE COMANDOS: 
                                   SET DEFAULT TO "D:\COMPU\APLICACIONES"
3.- AHORA DIGITAMOS LO SIGUIENTE:
                                   CREATE FORM PRIMERO 
4.- AHORA HACEMOS UN FORMATO CON EL DE LA IMAGEN



5.- EN CADA BOTÓN DE COMANDO DIGITAMOS LO SIGUIENTE:
thisform.text1.Value=thisform.text1.value+"1"
     NOTA: en cada comando hay que cambiar el valor del 1 al 9 
6.-EN EL BOTÓN "C" DIGITAMOS LO SIGUIENTE PARA BORRAR
THISFORM.TExt1.Value=" "
6.-EN EL BOTÓN IGUAL DIGITAMOS LO SIGUIENTE :
N2=VAL(THISFORM.TExt1.Value)
IF OPERACION="SUMA" THEN
RESPUESTA=N1+N2
ENDIF
N2=VAL(THISFORM.TExt1.Value)
IF OPERACION="RESTA" THEN
RESPUESTA=(N1)-(N2)
ENDIF
N2=VAL(THISFORM.TExt1.Value)
IF OPERACION="MULTIPLICAR" THEN
RESPUESTA=N1*N2
ENDIF
N2=VAL(THISFORM.TExt1.Value)
IF OPERACION="DIVIDIR" THEN
RESPUESTA=(N1)/(N2)
ENDIF
N2=VAL(THISFORM.TExt1.Value)
IF OPERACION="RAIZ CUADRADA" THEN
RESPUESTA=SQRT (N1)
ENDIF

THISFORM.TExt1.Value=RESPUESTA 
7.- AHORA PRESIONAMOS ESTE BOTÓN PARA EJECUTAR NUESTRA CALCULADORA

8.- AHORA UTILIZAMOS LA CALCULADORA 

x

martes, 17 de junio de 2014

calculadora video

***calculadora realizada en visual foxpro

CALCULADORA VFP

CALCULADORA EN VISUAL FOX PRO 9.0

CALCULADORA
HOY APRENDEREMOS COMO HACER UNA CALCULADORA VIRTUAL EN VISUAL FOXPRO 9.0

CONTENIDO Y DESARROLLO
Antes que nada Debemos Abrir Visual Fox  Pro

Luego una vez en el Entorno de Visual Fox Pro 9.0 Creamos un Nuevo Formulario
(Para ver Las Imágenes grandes solo dale Click)
Luego De Colocar Las herramientas de Control de Formulario , creamos Botones de Formulario con la herramienta Command Button
 
Y creamos 17 Botones
Luego Cambiamos El texto de cada Botón en la propiedad Caption
Después cambiamos el texto y Ordenamos los Botones ( Que quede Algo así)
Luego Colocamos una caja de Texto
Y Cambiamos el Nombre por cualquiera en este caso pantalla
Empezamos a Programar
Damos doble Click en la parte Vacia o El formulario
Y Declaramos o Publicamos Variables que Utilizaremos Luego
En Este caso estas Tres.
n1= El primer Numero que Ingresemos
n2= El segundo Numero que Ingresemos
opE=La operación que Utilizaremos
Ahora damos doble click en el Botón que dice "1"
Y escribimos esto.

Thisform indica que estamos utilizando un Objeto de Este Formulario. Siempre hay que Anteponerlo cuando mencionemos a un objeto del formulario.
Value indica el valor o los caracteres que tiene dentro del objeto.
Por lo tanto:
thisform.pantalla.Value=thisform.pantalla.value+"1"
Esto significa que el valor del Objeto Pantalla va a ser al mismo valor del Objeto Pantalla + 1 al ponerlo entre comillas no lo suma sino que lo acumula.
Repetimos este Proceso con todos Los números incluido el 0.


Luego Vamos al Botón  suma  o  +
y Escribimos esto
n1=VAL(THISFORM.pantalla.Value)
(Significa que la Variable que Declaramos antes n1 va a ser igual al valor que pongamos en la pantalla)
OPE="SUMA"
(Significa que la operación que estamos realizando es una "SUMA"  en este caso SUMA viene a ser un código para la que la computadora pueda identificar que acción realizar)

THISFORM.pantalla.VALUE=" "
(Significa que el valor que estaba escrito en pantalla va a ser igual a "" osea a lo que esta dentro de ""  Porsupuesto no hay nada  esta accion hace que la pantalla se borre)
Repetimos este Proceso con todas las operaciones menos Ce o C y el botón calcular  o (=) . Solo cambiamos OPE=  por la operacion que vayamos a hacer.


En el botón CE que será el que va a borrar la pantalla realizamos la acción de ="" que es borrar.
Programamos el botón Salir para que al momento de dar click nos salgo un mensaje de advertencia.
 ACF=MESSAGEBOX("DESEA SALIR...SEGURO??",4,"ALERTA  ALERTA !!!")

(Al colocar ACF significa que todo este procedimiento va a ser controlado por esta variable en este caso ACF, = messagebox es el código para mostrar un mensaje ponemos ( y comillas para especificar lo que va a ir en el mensaje)

Cerramo comillas y ponemos coma (,)  aqui pondremos un numero relacionado con los botones que tendra el mensaje.
En este caso 4 donde solo salen los botones Si y No  Yes and No en INGLES.
Al poner coma otra vez y comillas; Escribiremos lo que Ira en el titulo del mensaje.

Y cerramos Comillas y Paréntesis.


IF ACF=6 THEN

(Cuando Ponemos IF  significa que estamos poniendo una condicion de Si, en este caso Que pasa SI ACF la variable que esta controlando el mensaje es igual a 6 . El 6 viene a ser la Representacion de le botón SI en el mensaje.  Si esto Ocurre THEN que es Entonces. el Programa se cierra.)

THISFORM.Release
Cierra el Formulario.
ENDIF
Siempre que Abrimos un If tenemos que Poner un Endif que siginifca CIerre de Condicion.ç

Ahora Vamos a Programar El Botón (=) o Calcular.



n2=VAL(THISFORM.PANTALLA.Value)

(Como Vamos a dar click en calcular después de que hayamos dado click en una operacion , esta va a ser la segunda vez en que pantalla tenga valores por este motivo n2 va a ser igual al nuevo valor que se pondrá despues de Presionar un botón de Operacion.  asi     2      +     2    =    4
                                                                                n1           n2


IF OPE="SUMA" THEN

( Creamos una Condicion que especificará que operacion se ha realizado mediante la varaible OPE)
(En esta caso es SUMA)

RES=n1+n2

( Res es una variable que solo indica el resultado, como Ope fue igual a "SUMA" entonces n1 + n2 = res)

ELSE

( Else significa Cso contrario o  el otro lado de la condicion,,¿que pasa si no se cumple esto? ..lo que va a pasar es que hayamos presionado otra operacion)

IF OPE="MENOS" THEN

(La operacion Menos  o Resta)

RES=n1-n2

( Especificamos el resultado de una resta)


ELSE

(Caso contrario)

IF OPE="POR" THEN
( Si dimos click en la Multiplicacion *)

RES=n1*n2
(N1 y N2 se van a multiplicar)

ELSE

(Caso contrario)

IF OPE="PARA" THEN


( Si dimos click en la Division /)



RES=n1/n2

(N1 y N2 se van a DIvidir)

ENDIF
ENDIF
ENDIF
ENDIF

( COmo abrimos Muchas COndiciones de Igual manera tenemos que cerrarlas)



THISFORM.PANTALLA.Value=RES
(Al final Visualizamos el Resultado de la varialbe res a la pantalla , la caja de texto)
SI queremos darle un Estilo Mejor Podemos Agregarle una MArquesina
Para esto Creamos UN label
Elegimos El tamaño Letra y Color en las propiedades.
Luego Agregamos un Timer.

Y en la Ventana de Programacion del Formulario

Agregamos 4 variables para Publicar.




Y Escribimos que las variables c y c1 sean igual a Nada pero p=0  y Letras que va a ser la marquesina va a ser igual al texto que queremos Poner entre Comillas y paréntesis.

En EL botón del Timer Agregamos :
P=P+1
(Indicamos que la Variable p va a ser igua al a misma varaible mas 1)

C=SUBSTR(LETRAS,P,1)
( La variable C regresa el numero de caracteres desde una posicion anterior)
(Substr es necesari para realizar la marquesina)
C1=C1+C
(Indicamos que la Variable c va a ser igua al a misma varaible mas 1)
THISFORM.LABEL1.Caption=C1
(Indicamos que la Variable c va a ser igua Al texto que esta escrito en Label1)

IF P=LEN(LETRAS) THEN
(Una condicion donde dice que si ya han pasado todo los caracteres de Letras)
LABEL1=""

(Label1 se borra para empezar de nuevo y asi tener el efecto de una marquesina)

C1=""
(C1 es igual a nada  esto significa que volvera a ser label 1 para tomar el efecto de una marquesina)
P=0
(P Volvera a contar desde 0)
ENDIF
(Cerramos la Condición)
Y CAMBIAMOS EL INTERVALO EN LA VENTANA DE PROPIEDADES DE TIMER A 100
probamos.
CONCLUSIONES
Este Programa agilita mas las cosas al realizar aplicaciones  y  es muy útil en cuanto a la Programación, Teniendo un simple sistema de referencias para Realizar algoritmos, Es fácil de Usar y la Aplicación muy Beneficiosa...

sábado, 14 de junio de 2014

PROGRAMA QUE CALCUALA EL AREA CUADRATICA DE UNA FIGURA

***PROGRAMA QUE CALCUALA EL AREA CUADRATICA DE UNA FIGURA
***VISUAL FOXPRO

SET STATUS OFF
SET SCORE OFF
SET TALK OFF
CLEAR
@ 02, 04 say "programa areas cuadraticas"
A=0
B=0
@ 04, 04 say "menu de opciones"
@ 06, 04 say "1. area de un cuadrado"
@ 08, 04 say "2. area de un circulo"
@ 10, 04 say "3. area de un trapecio"
@ 12, 04 say "4. area de un cilindro"
@ 14, 04 say "5. area de un rectangulo"
@ 16, 04 say "6. area de un triangulo"
@ 18, 04 say "elija el numero de la opcion que desea" get A
read
aro=0
aro2=0
if A=1
@ 20, 04 say "escriba el numero de el primer lado" get aro
read
@ 22, 04 say "escriba el numero de el segundo lado" get aro2
read
z=aro*aro2
@ 24, 04 say "el area de el cuadrado es: " +str(z) +"cm²"
endif
circulo=0
if A=2
@ 20, 04 say "escriba el radio de el circulo" get circulo
read
p=circulo*circulo
z=3.141592654*p
@ 22, 04 say "el area de el circulo es: " +str(z) +"cm²"
endif
n=0
m=0
c=0
if A=3
@ 20, 04 say "ingrese la base mayor" get n
read
@ 22, 04 say "ingrese la base menor" get m
read
@ 24, 04 say "ingrese la altura de el trapecio" get c
read
h=n+m
j=(c*h)/2
@ 26, 04 say "el area de el trapecio es de: " +str(m) +"cm²"
endif
g=0
e=0
if A=4
@ 20, 04 say "escriba la altura de el cilindro" get g
read
@ 22, 04 say "ingrese el radio" get e
read
h=2*3.141592654*e*g
@ 24, 04 say "el area de cilindro es: " +str(h) +"cm²"
endif
u=0
t=0
if A=5
@ 20, 04 say "ingrese la base del rectangulo " get u
read
@ 22, 04 say "ingrese la altura del rectangulo" get t
read
d=u*t
@ 24, 04 say "el area de la base del rectangulo es: "  +str(d) +"cm²"
read
endif
w=0
h=0
m=0
if A=6
@ 20, 04 say "1. triangulo equilatero"
@ 22, 04 say "2. triangulo isosceles"
@ 24, 04 say "3. triangulo rectangulo"
@ 26, 04 say "ingrese el numero de la opcion que desea" get m
READ
@ 28, 04 say "ingrese la base del triangulo" get w
read
@ 30, 04 say "ingrese la altura del triangulo" get h
read
v=w*h/2
@ 32, 04 say "el area del triangulo es de: " +str(v) +"cm²"
endif

PROGRAMA QUE CALCULA LA EDAD

***PROGRAMA QUE CALCULA LA EDAD
***VISUAL FOXPRO

clear
@1,4 say "PROGRAMA QUE CALCULA LA EDAD"
nombre=space(30)
edad=0
@8,10 say "ingrese su nombre" get nombre
read
@10,10 say "ingrese su edad" get edad
read

if  edad<18
   @15,10 say "USTED ES MENOR DE EDAD"
ELSE
    @15,10 say "USTED ES MAYOR DE EDAD"
ENDIF