Algunas ideas para proyecto

Algunas ideas para proyecto

Postby Francisco Horta » Wed May 27, 2009 4:53 pm

Hola foro,

Pues ahora necesito si me ayudan con alugnas ideas o si alguien por ahi tiene algo desarrollado, necesito hacer lo siguiente:

En mi Punto de Venta, quier hacer sorteos a cierta hora, para un salon de belleza donde se hacen servicios...
Ejemplo:
entra un cliente y al registrarse en mi sistema para "x" servicio, le imprimo un boleto con un numero para una rifa de "x" descuento en su servicio, y asi sucesivamente, cuando entran 20 clientes y les di por ejemplo de la numeracion 001 a la 020, quiero en un dialogo mostrar un boton donde diga sorteo y pinchar ahi y que empiece aleatoriamente a recorrer la numeracion durante 5 segundos, al termino de los 5 segundos que se detenga y me aparezca en pantalla el numero ganador,
es todo lo que necesito, algunas ideas?
mil gracias
salu2
paco
____________________
Paco
Francisco Horta
 
Posts: 845
Joined: Sun Oct 09, 2005 5:36 pm
Location: la laguna, mexico.

Re: Algunas ideas para proyecto

Postby Armando » Wed May 27, 2009 5:21 pm

Paco:

Por lo que entiendo ya lo tienes bien "masticado", solo te falta escribir el código.

Un abrazo
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
User avatar
Armando
 
Posts: 3061
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Algunas ideas para proyecto

Postby Francisco Horta » Wed May 27, 2009 6:20 pm

Armando, eso es precisamente de lo que quiero la idea, como hacerlo en codigo, como poner un texto con numer y que avanzara como si fuera un reloj rapidisimo mostrando los numeros luego que se detenga, que funciones uso, ai me bloquee, con un timer, como? como pararlo, como hacer que muestre los numeros aleatoriamente, ....
:-(
salu2
paco
____________________
Paco
Francisco Horta
 
Posts: 845
Joined: Sun Oct 09, 2005 5:36 pm
Location: la laguna, mexico.

Re: Algunas ideas para proyecto

Postby Armando » Wed May 27, 2009 6:40 pm

Paco:

Ahhhhh, creo que debes usar una ventana con un TIMER, como sabes el timer te permite ejecutar una función cada n segundos o decimas de segundos (habra que confirmarlo).

Resumiendo, creas un botón cuya actividad sea abrir la ventana con el timer y en la función del timer metes la creación y muestra de los números aleatorios, creo que con la función RND() los puedes crear, al final del timer quedará en la ventana el número ganador, chan chan chan chaaaan. :-)

Espero que por ahí vayan los tiros, seguramente alguien aportará algo más.

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
User avatar
Armando
 
Posts: 3061
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Algunas ideas para proyecto

Postby Cgallegoa » Wed May 27, 2009 8:42 pm

Francisco,

Te pongo una adaptación de "FWH\Samples\LedDisp.prg." .

Tienes que usar el bmp "Display.bmp" que tienes en "FWH\Bitmaps"

Code: Select all  Expand view

// A nice Odometer developed by a FiveWin user

#include "FiveWin.ch"
Static nGet
Static oBmp1, oBmp2, oBmp3, oBmp4, oBmp5
//----------------------------------------------------------------------------//

function Odo()

   local oDlg, oFont1
   LOCAL cNGanador := "333"

LOCAL aDatos:={"001","002","003","004","005","006","007","008","009","010",;
               "011","012","013","014","015","016","017","018","019","020"}

   DEFINE FONT oFont1 NAME "Arial" SIZE 0,-36 BOLD
   DEFINE DIALOG oDlg FROM 0, 0 TO 15, 60 TITLE "PROBANDO EL CONTADOR"

   /* Cada dígito es de 34 x 48 */

   @  0, 0 BITMAP oBmp1 FILE "..\bitmaps\display.bmp" OF oDlg
   @  0, 0 BITMAP oBmp2 FILE "..\bitmaps\display.bmp" OF oDlg
   @  0, 0 BITMAP oBmp3 FILE "..\bitmaps\display.bmp" OF oDlg
   @  0, 0 BITMAP oBmp4 FILE "..\bitmaps\display.bmp" OF oDlg
   @  0, 0 BITMAP oBmp5 FILE "..\bitmaps\display.bmp" OF oDlg

   oBmp1:nTop    := 28
   oBmp1:nLeft   := 80
   oBmp1:nBottom := 52
   oBmp1:nRight  := 97

   oBmp2:nTop    := 28
   oBmp2:nLeft   := 98
   oBmp2:nBottom := 52
   oBmp2:nRight  := 115

   oBmp3:nTop    := 28
   oBmp3:nLeft   := 116
   oBmp3:nBottom := 52
   oBmp3:nRight  := 133

   oBmp4:nTop    := 28
   oBmp4:nLeft   := 134
   oBmp4:nBottom := 52
   oBmp4:nRight  := 151

   oBmp5:nTop    := 28
   oBmp5:nLeft   := 152
   oBmp5:nBottom := 52
   oBmp5:nRight  := 169

   @ 73,50 SAY "Número ganador:" OF oDlg PIXEL
   @ 66,110 SAY oSay1 VAR cNGanador OF oDlg PIXEL FONT oFont1 COLOR nRGB(175,0,0)

   @ 10,100 BUTTON "&Sorteo" OF oDlg SIZE 40, 12 ;
      ACTION Solo(aDatos,oSay1) PIXEL

   ACTIVATE DIALOG oDlg CENTERED ;
           ON INIT (oBmp1:nX:=-528,oBmp2:nX:=-528,oBmp3:nX:=-528,oBmp4:nX:=-528,oBmp5:nX:=-528,;
                    oSay1:Hide())

return nil


Function Solo(aDatos,oSay1)
    Local i, nNumRam, nVeces := 10 // 50
    oSay1:Hide()
    for i = 1 to nVeces
        nNumRam := Round(HB_Random(1,Len(aDatos)),0)
        Pone(oBmp1, oBmp2, oBmp3, oBmp4, oBmp5, nNumRam)
        if i==nVeces
           oSay1:SetText(StrZero(nNumRam,5))
           oSay1:Show()
        endif
        SysWait(0.2)
        SysRefresh()
    next i
return NIL


//---------------------------------------------------------------------------//

Function Pone ( oB1, oB2, oB3, oB4, oB5, nCantidad)

  Local cNum := SPACE(5)
  Local nLen := 0
  Local nDig1 := 0
  Local nDig2 := 0
  Local nDig3 := 0
  Local nDig4 := 0
  Local nDig5 := 0

        cNum := STR(nCantidad)
        nLen := LEN(cNum)

        nDig1 := VAL(SUBSTR(cNum, nLen - 4, 1))

        if nDig1 = 0
           oB1:nX := -528         // 0 - (11 * 48)
        else
           oB1:nX := 0 - (nDig1 * 48)
        endif

        nDig2 := VAL(SUBSTR(cNum, nLen - 3, 1))

        if nDig2 = 0 .AND. nDig1 = 0
           oB2:nX := -528
        else
                oB2:nX := 0 - (nDig2 * 48)
        endif

        nDig3 := VAL(SUBSTR(cNum, nLen - 2, 1))
        if nDig3 = 0 .AND. nDig2 = 0 .AND. nDig1 = 0
           oB3:nX := 0 // -528
        else
                oB3:nX := 0 - (nDig3 * 48)
        endif

        nDig4 := VAL(SUBSTR(cNum, nLen - 1, 1))
        if nDig4 = 0 .AND. nDig3 = 0 .AND. nDig2 = 0 .AND. nDig1 = 0
           oB4:nX := 0 // -528
        else
                oB4:nX := 0 - (nDig4 * 48)
        endif

        nDig5 := VAL(SUBSTR(cNum, nLen, 1))
        oB5:nX := 0 - (nDig5 * 48)

        oB5:Refresh( .F. )
        oB4:Refresh( .F. )
        oB3:Refresh( .F. )
        oB2:Refresh( .F. )
        oB1:Refresh( .F. )
        SysRefresh()

return NIL

Ajústalo a tus necesidades.

Saludos,

Carlos Gallego
Saludos,

Carlos Gallego

*** FWH-23.10, xHarbour 1.2.3 Build 20190603, Borland C++7.30, PellesC ***
Cgallegoa
 
Posts: 414
Joined: Sun Oct 16, 2005 3:32 am
Location: Quito - Ecuador

Re: Algunas ideas para proyecto

Postby JavierVital » Thu May 28, 2009 5:46 am

Supongo que ese ticket que diste a la entrada tambien lo registras a la salida, porque sino haces el sorteo y resulta que la ganadora ya no esta jejejeje
User avatar
JavierVital
 
Posts: 105
Joined: Thu Feb 26, 2009 4:08 pm

Re: Algunas ideas para proyecto

Postby Francisco Horta » Fri May 29, 2009 12:06 am

Carlos,
gracias por tu aporte lo probare, es algo asi lo que buscaba , mil gracias y asi es javier hay que registrar la salida
salu2
paco
____________________
Paco
Francisco Horta
 
Posts: 845
Joined: Sun Oct 09, 2005 5:36 pm
Location: la laguna, mexico.


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 77 guests