Algunos Programitas

Aplicaciones de código fuente abierto para descargar

Algunos Programitas

Notapor Joe » Vie Mar 28, 2008 6:07 pm

Aca les mando unos programitas, mas bien son demos graficos. Saludos
PD: A ver si empezamos a mover el foro un poco mas :P

Este programita utiliza números al azar para pintar puntos que se desvanecen:
Código: Seleccionar todo
$ADV-

Importar "PauscalW.prp"



Clase c_Form1(pscForm)
Público:

  ClaseVar _
    Prime:pscTemporizador

Privado:
'Declaraciones

  Estruc Pass2,_
   Col:Real
 
  Estruc Pass,_
   Y[62]:Pass2
 
  ClaseVar pX[100]:Pass

  Proc Init
    X=0
    Y=0
    Ancho=380
    Alto=240
    Texto="Form1"
    Visible=Verd
    Habilitado=Verd
    PuedeCambiarDeTamaño=Falso
    BotonMaximizar=Verd
    BotonMinimizar=Verd
    MenuSistema=Verd
    Centrar=Verd
    Borde=Verd
    Eval Eventos
      .AlMoverMouse@=f0_Form_AlMoverMouse@
      .AlCargarse@=f0_Form_AlCargarse@
    FinEval
    CrearForm
    Crear Prime
    Eval Prime
      .Padre = EsteObjeto
      .X=0
      .Y=0
      .Ancho=30
      .Alto=30
      .Bloquear=Verd
      .Habilitado=Verd
      .Intervalo=10
      Eval .Eventos
        .AlTranscurrirIntervalo@=f0_Prime_AlTranscurrirIntervalo@
      FinEval
    FinEval
  FinProc
Público:
  Proc CargarForm
    Si (hWnd=0)
      Init
      Prime.CargarTemporizador(hWnd)
      FormCargado
    FinSi
  FinProc
  Proc Mostrar(Opcional EsModal:Booleano)
    CargarForm
    Si (EsModal) MostrarModalInt; SiNo; MostrarInt
  FinProc

'Eventos

  Proc Prime_AlTranscurrirIntervalo() Adelantado
  Proc Form_AlMoverMouse(Shift, X, Y:EnteroSig) Adelantado
  Proc Form_AlCargarse() Adelantado
  Proc Render() Adelantado
  Proc PegaraLaTierra() Adelantado

FinClase

'Alias

Proc f0_Prime_AlTranscurrirIntervalo()
  Form1.Prime_AlTranscurrirIntervalo()
FinProc
Proc f0_Form_AlMoverMouse(Shift, X, Y:EnteroSig)
  Form1.Form_AlMoverMouse(Shift, X, Y)
FinProc
Proc f0_Form_AlCargarse()
  Form1.Form_AlCargarse()
FinProc


Var Form1:c_Form1

Proc CicloPrincipal
  Crear Form1
  Form1.CargarForm
  Form1.Mostrar
  Programa.Ejecutar
FinProc


'**************************************************

'Código de eventos y procedimientos
'definidos por el usuario

Proc c_Form1.Prime_AlTranscurrirIntervalo()
Render()
PegaraLaTierra()
FinProc

Proc c_Form1.Form_AlMoverMouse(Shift, X, Y:EnteroSig)
Si(X > 21) Y (Y > 21)
 pX[X\4].Y[Y\4].Col = 255
 pX[GenerarNúmeroAlAzar(X-20, X)\4].Y[GenerarNúmeroAlAzar(Y-20, Y)\4].Col = 255
 pX[GenerarNúmeroAlAzar(X-20, X)\4].Y[GenerarNúmeroAlAzar(Y-20, Y)\4].Col = 255
 pX[GenerarNúmeroAlAzar(X-20, X)\4].Y[GenerarNúmeroAlAzar(Y-20, Y)\4].Col = 255
Sino
FinSi
FinProc

Proc c_Form1.Form_AlCargarse()
Var a, b:Entero

'Contar a = 0 a 99
' Contar b = 0 a 61
'  pX[a].Y[b].Col = 255.0
' Seguir
'Seguir

ZonaDibujo.Lápiz.Ancho = 4
Form1.Color = &0
FinProc

Proc c_Form1.Render()
Var a, b:Entero

Contar a = 0 a 99
 Contar b = 0 a 61
 Bloque
  Si(pX[a].Y[b].Col <= 0) Salir Bloque
  ZonaDibujo.Lápiz.Color = RealEnt(pX[a].Y[b].Col)'RGB(RealEnt(pX[a].Y[b].Col),RealEnt(pX[a].Y[b].Col),RealEnt(pX[a].Y[b].Col))
  ZonaDibujo.Línea(a*4,b*4,a*4,b*4)
 FinBloque
 Seguir
Seguir
FinProc

Proc c_Form1.PegaraLaTierra()
Var a, b:Entero

Contar a = 0 a 99
 Contar b = 0 a 61
 Si(pX[a].Y[b].Col > 0.0)
  Si(pX[a].Y[b].Col <= 255.0)
   pX[a].Y[b].Col = pX[a].Y[b].Col - 4
  SiNo
   pX[a].Y[b].Col = 0
  FinSi
 SiNo
 FinSi
 Seguir
Seguir
FinProc


CicloPrincipal
Fin


Este programa es una modificacion de uno anterior (cuerdas) e imita arcos electricos:
Código: Seleccionar todo
$ADV-

Importar "PauscalW.prp"



Clase c_Form1(pscForm)
Público:

  ClaseVar _
    Contdr:pscTemporizador

Privado:
'Declaraciones

  Estruc Pass,_
         Px, Py,_
         Mx, My:Real,_
         Cx, Cy:Real
  ClaseVar Nodos[80]:Pass

  Proc Init
    X=0
    Y=0
    Ancho=456
    Alto=590
    Texto="Form1"
    Visible=Verd
    Habilitado=Verd
    PuedeCambiarDeTamaño=Verd
    BotonMaximizar=Verd
    BotonMinimizar=Verd
    MenuSistema=Verd
    Centrar=Verd
    Borde=Verd
    Eval Eventos
      .AlMoverMouse@=f0_Form_AlMoverMouse@
      .AlCargarse@=f0_Form_AlCargarse@
    FinEval
    CrearForm
    Crear Contdr
    Eval Contdr
      .Padre = EsteObjeto
      .X=318
      .Y=0
      .Ancho=30
      .Alto=30
      .Bloquear=Verd
      .Habilitado=Verd
      .Intervalo=10
      Eval .Eventos
        .AlTranscurrirIntervalo@=f0_Contdr_AlTranscurrirIntervalo@
      FinEval
    FinEval
  FinProc
Público:
  Proc CargarForm
    Si (hWnd=0)
      Init
      Contdr.CargarTemporizador(hWnd)
      FormCargado
    FinSi
  FinProc
  Proc Mostrar(Opcional EsModal:Booleano)
    CargarForm
    Si (EsModal) MostrarModalInt; SiNo; MostrarInt
  FinProc

'Eventos

  Proc Contdr_AlTranscurrirIntervalo() Adelantado
  Proc Form_AlMoverMouse(Shift, X, Y:EnteroSig) Adelantado
  Proc Form_AlCargarse() Adelantado
  Proc Gravedad() Adelantado
  Proc CalcularLimites() Adelantado
  Proc Graficar() Adelantado
  Proc ABS(Numero:Real):Real Adelantado

FinClase

'Alias

Proc f0_Contdr_AlTranscurrirIntervalo()
  Form1.Contdr_AlTranscurrirIntervalo()
FinProc
Proc f0_Form_AlMoverMouse(Shift, X, Y:EnteroSig)
  Form1.Form_AlMoverMouse(Shift, X, Y)
FinProc
Proc f0_Form_AlCargarse()
  Form1.Form_AlCargarse()
FinProc


Var Form1:c_Form1

Proc CicloPrincipal
  Crear Form1
  Form1.CargarForm
  Form1.Mostrar
  Programa.Ejecutar
FinProc


'**************************************************

'Código de eventos y procedimientos
'definidos por el usuario

Proc c_Form1.Contdr_AlTranscurrirIntervalo()
Gravedad()
CalcularLimites()
Graficar()
FinProc

Proc c_Form1.Form_AlMoverMouse(Shift, X, Y:EnteroSig)
Nodos[0].Px = EntReal(X)
Nodos[0].Py = EntReal(Y)
FinProc

Proc c_Form1.Form_AlCargarse()
Var a:Entero
Contar a = 0 a LongMat(Nodos) - 1
 Nodos[a].Px = 100
 Nodos[a].Py = 100
 Nodos[a].Mx = 0.0
 Nodos[a].My = 0.0
 Nodos[a].Cx = 0.0
 Nodos[a].Cy = 0.0
Seguir
FinProc

Proc c_Form1.Gravedad()
Var a:Entero, Grav:Real

Grav = 0

Contar a = 1 a LongMat(Nodos)-1
 Nodos[a].Py = Nodos[a].Py + Grav
Seguir
FinProc

Proc c_Form1.CalcularLimites()
Var a:Entero

Contar a = LongMat(Nodos)-1 a 1 Dec
 Si(Nodos[a].Px < (Nodos[a-1].Px - 1))
  Nodos[a].Mx = ((Nodos[a-1].Px - Nodos[a].Px) /40)
  Nodos[a].Cx = ((Nodos[a-1].Px - Nodos[a].Px) )''''''''''''
 SiNo
   Si(Nodos[a].Px > (Nodos[a-1].Px + 1))
    Nodos[a].Mx = -((Nodos[a].Px - Nodos[a-1].Px) /40)
    Nodos[a].Cx = -((Nodos[a].Px - Nodos[a-1].Px) )'''''''''''''''
   SiNo
    Nodos[a].Mx = ABS(Nodos[a].Mx)
   FinSi
 FinSi
Seguir

Contar a = LongMat(Nodos)-1 a 1 Dec
 Si(Nodos[a].Py < (Nodos[a-1].Py - 1))
  Nodos[a].My = ((Nodos[a-1].Py - Nodos[a].Py) /40)
  Nodos[a].Cy = ((Nodos[a-1].Py - Nodos[a].Py) )''''''''''''''
 SiNo
   Si(Nodos[a].Py > (Nodos[a-1].Py + 1))
    Nodos[a].My = -((Nodos[a].Py - Nodos[a-1].Py) /40)
    Nodos[a].Cy = -((Nodos[a].Py - Nodos[a-1].Py) )'''''''''''''
   SiNo
    Nodos[a].My = ABS(Nodos[a].Mx)
   FinSi
 FinSi
Seguir

Contar a = 0 a LongMat(Nodos)-1
  Nodos[a].Px = (Nodos[a].Px + Nodos[a].Mx) + Nodos[a].Cx
  Nodos[a].Py = (Nodos[a].Py + Nodos[a].My) + Nodos[a].Cy
Seguir

Contar a = 0 a LongMat(Nodos)-1
  Nodos[a].Cx = ABS(Nodos[a].Cx)
  Nodos[a].Cy = ABS(Nodos[a].Cy)
Seguir
FinProc

Proc c_Form1.Graficar()
Var a:Entero

Actualizar()
Contar a = 1 a LongMat(Nodos)-1
 ZonaDibujo.Línea(RealEnt(Nodos[a-1].Px), RealEnt(Nodos[a-1].Py), RealEnt(Nodos[a].Px), RealEnt(Nodos[a].Py))
Seguir
FinProc

Proc c_Form1.ABS(Numero:Real):Real
Si(Numero > 0)
  Resultado = Numero - (Numero/200)
SiNo
 Si(Numero < 0)
  Resultado = Numero + (Numero/200)
 SiNo
  Resultado = 0
 FinSi
FinSi
FinProc


CicloPrincipal
Fin
La Hora 10 esta cerca. Haz el bien, haz lo que mas te gusta, por que a partir de alli todo cambiará
Joe
 
Mensajes: 130
Registrado: Mar Nov 20, 2007 11:55 pm

Sponsor


Re: Algunos Programitas

Notapor Pauscal » Sab Mar 29, 2008 2:36 pm

Joe escribiste:PD: A ver si empezamos a mover el foro un poco mas :P

Lo que pasa es que nadie está a tu nivel, Joe!! Nadie!! ;)
Si este proyecto te parece útil, aceptamos donaciones en Bitcoins: 1FdnaaQyVDqmhsJZw9gk41M3zUsJrDY7Hj
Pauscal
Jefe
 
Mensajes: 439
Registrado: Mar Nov 20, 2007 9:41 pm
Ubicación: Paraná, Entre Ríos, Argentina

Re: Algunos Programitas

Notapor Joe » Sab Mar 29, 2008 6:48 pm

pguerra escribiste:
Joe escribiste:PD: A ver si empezamos a mover el foro un poco mas :P

Lo que pasa es que nadie está a tu nivel, Joe!! Nadie!! ;)


Ni tanto!
Yo solo hago lo que vengo haciendo hace años, solo cambiando algunas cosas.
Saludos
La Hora 10 esta cerca. Haz el bien, haz lo que mas te gusta, por que a partir de alli todo cambiará
Joe
 
Mensajes: 130
Registrado: Mar Nov 20, 2007 11:55 pm

Re: Algunos Programitas

Notapor Joe » Sab Mar 29, 2008 7:27 pm

Otra modificacion:
Código: Seleccionar todo
$ADV-

Importar "PauscalW.prp"



Clase c_Form1(pscForm)
Público:

  ClaseVar _
    Prime:pscTemporizador

Privado:
'Declaraciones

  Estruc Pass2,_
   Col:Real
 
  Estruc Pass,_
   Y[62]:Pass2
 
  ClaseVar pX[100]:Pass

  Proc Init
    X=0
    Y=0
    Ancho=380
    Alto=240
    Texto="Form1"
    Visible=Verd
    Habilitado=Verd
    PuedeCambiarDeTamaño=Falso
    BotonMaximizar=Verd
    BotonMinimizar=Verd
    MenuSistema=Verd
    Centrar=Verd
    Borde=Verd
    Eval Eventos
      .AlCargarse@=f0_Form_AlCargarse@
    FinEval
    CrearForm
    Crear Prime
    Eval Prime
      .Padre = EsteObjeto
      .X=0
      .Y=0
      .Ancho=30
      .Alto=30
      .Bloquear=Verd
      .Habilitado=Verd
      .Intervalo=10
      Eval .Eventos
        .AlTranscurrirIntervalo@=f0_Prime_AlTranscurrirIntervalo@
      FinEval
    FinEval
  FinProc
Público:
  Proc CargarForm
    Si (hWnd=0)
      Init
      Prime.CargarTemporizador(hWnd)
      FormCargado
    FinSi
  FinProc
  Proc Mostrar(Opcional EsModal:Booleano)
    CargarForm
    Si (EsModal) MostrarModalInt; SiNo; MostrarInt
  FinProc

'Eventos

  Proc Prime_AlTranscurrirIntervalo() Adelantado
  Proc Form_AlCargarse() Adelantado
  Proc Render() Adelantado
  Proc PegaraLaTierra() Adelantado

FinClase

'Alias

Proc f0_Prime_AlTranscurrirIntervalo()
  Form1.Prime_AlTranscurrirIntervalo()
FinProc
Proc f0_Form_AlCargarse()
  Form1.Form_AlCargarse()
FinProc


Var Form1:c_Form1

Proc CicloPrincipal
  Crear Form1
  Form1.CargarForm
  Form1.Mostrar
  Programa.Ejecutar
FinProc


'**************************************************

'Código de eventos y procedimientos
'definidos por el usuario

Proc c_Form1.Prime_AlTranscurrirIntervalo()
Render()
PegaraLaTierra()

pX[GenerarNúmeroAlAzar(0, 99)].Y[GenerarNúmeroAlAzar(0, 61)].Col = 255
pX[GenerarNúmeroAlAzar(0, 99)].Y[GenerarNúmeroAlAzar(0, 61)].Col = 255

FinProc

Proc c_Form1.Form_AlCargarse()
Var a, b:Entero

'Contar a = 0 a 99
' Contar b = 0 a 61
'  pX[a].Y[b].Col = 255.0
' Seguir
'Seguir

ZonaDibujo.Lápiz.Ancho = 4
Form1.Color = &0
FinProc

Proc c_Form1.Render()
Var a, b:Entero

Contar a = 0 a 99
 Contar b = 0 a 61
 Bloque
  Si(pX[a].Y[b].Col <= 0) Salir Bloque
  ZonaDibujo.Lápiz.Color = RGB(RealEnt(pX[a].Y[b].Col),RealEnt(pX[a].Y[b].Col),RealEnt(pX[a].Y[b].Col))
  ZonaDibujo.Línea(a*4,b*4,a*4,b*4)
 FinBloque
 Seguir
Seguir
FinProc

Proc c_Form1.PegaraLaTierra()
Var a, b:Entero

Contar a = 0 a 99
 Contar b = 0 a 61
 Si(pX[a].Y[b].Col > 0.0)
  Si(pX[a].Y[b].Col <= 255.0)
   pX[a].Y[b].Col = pX[a].Y[b].Col - 4
  SiNo
   pX[a].Y[b].Col = 0
  FinSi
 SiNo
 FinSi
 Seguir
Seguir
FinProc


CicloPrincipal
Fin
La Hora 10 esta cerca. Haz el bien, haz lo que mas te gusta, por que a partir de alli todo cambiará
Joe
 
Mensajes: 130
Registrado: Mar Nov 20, 2007 11:55 pm

Re: Algunos Programitas

Notapor lukasg » Dom Mar 30, 2008 12:41 am

jajaja, muy buenos, me gustaron, no vi el codigo, pero tiene bastante de numeros aleatorios todo.

muy buen trabajo.
lukasg
 
Mensajes: 129
Registrado: Mié Nov 21, 2007 9:41 am
Ubicación: Santa Fe, Argentina

Re: Algunos Programitas

Notapor Sadic » Mar Abr 01, 2008 1:31 pm

Realmente tienes talento joe .
Felicidades
Segados por la voz de la inesperiencia nos arrastramos
Sin penzar a lomos del desierto asia las cavernas la huellas del peregrino me giaran.
Sadic
 
Mensajes: 115
Registrado: Mié Nov 21, 2007 7:25 pm
Ubicación: 23824 villa vista DR Orlando Florida

Re: Algunos Programitas

Notapor Joe » Jue Abr 03, 2008 1:58 am

Gracias, espero les sirva para crear variantes y exponerlas aca, ojala yo tuviera mas codigo creado en pauscal para aprender de otros, espero lo aprovechen, saludos.
La Hora 10 esta cerca. Haz el bien, haz lo que mas te gusta, por que a partir de alli todo cambiará
Joe
 
Mensajes: 130
Registrado: Mar Nov 20, 2007 11:55 pm




Siguiente

Volver a Código Abierto

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 3 invitados