Page 1 of 1

ot: cementerio del futuro

Posted: Thu Dec 27, 2018 1:02 pm
by wilsongamboa
Buenos dias a todos
comento el tema
me han nombrado asesor informatico de una sobrina mia que tiene 7 años, ella ha ideado un futuro cementerio donde en el suelo ( tierra ) se encuentra un parque donde la gente se distrae y los difuntos ( muertos ) estan flotando en unas capsulas con sus cenizas en el segundo piso y en los pisos superiores ( o algo asi)
La pregunta concreta es
- se puede en Fw generar una especie de cielo ( negro ) donde esten flotando unas capsulas ( blancas ) mismas que estan asociadas a la informacion de la persona y que contiene su cenizas
- si doy click en una capsula aparecera la informacion completa de la persona
perdon el off topic
soy muy malo en esto de lo visual
muchas gracias si alguien me da una idea
saludos cordiales
y feliz navidad a todos

Re: ot: cementerio del futuro

Posted: Thu Dec 27, 2018 5:52 pm
by Marcelo Via Giglio
Hola,

lo veo sencillo, creas una ventana con fondo negro, defines tus capsulas, bmps, tus las diseñas (dibujas), las defines en la ventana en alguna posición, incluso puedes hacer que parezcan que flotan (timer) y defines un evento cuando hagas click en ellas.

Solo una idea para madurar

saludos

Marcelo

Re: ot: cementerio del futuro

Posted: Wed Jan 02, 2019 5:57 pm
by wilsongamboa
Muchas gracias MArcelo con tu idea he hecho esto, pero quisiera si alguien me da una idea de como hacerles flotar a los botones muchas gracias y un FELIZ año a todos

Code: Select all

#include 'fivewin.ch'

static nVeces

function main()

    local oWnd
    local oBrush
    local nR       := 0
    local nG       := 0
    local nB       := 0
    local oTmr

    define brush oBrush color nRGB( nR, nG, nB )

    define window oWnd title 'cementerio futuro Katrin Gamboa' //STYLE NOSYSMENU

    define timer oTmr interval 2500 ACTION MakeSome( oWnd ) OF oWnd


    SET BRUSH OF oWnd TO oBrush

    ataudes( oWnd )

    ACTIVATE TIMER oTmr


    activate window oWnd center //on init MakeSome( oWnd )



return nil

function MakeSome( oWnd )

    if empty( nVeces )
        nVeces = 0
    end

    mueveataudes( oWnd )

return nil


function ataudes( oWnd )

    @ 05         , 05 BTNBMP PROMPT "At2345" SIZE 100,40 PIXEL OF oWnd FLAT ;
      ACTION ( msginfo('Wilson Gamboa Nacio en Banios murio en Quito' ) )

    @ 05 + 45    , 05 BTNBMP PROMPT "At2346" SIZE 100,40 PIXEL OF oWnd FLAT ;
      ACTION ( msginfo('Julio Pazos Nacio en Quito murio en Quito' ) )

    @ 05 + 45 * 2, 05 BTNBMP PROMPT "At2347" SIZE 100,40 PIXEL OF oWnd FLAT ;
      ACTION ( msginfo('Alfonso Espinoza de los Monteros nacio en Quito NUNCA MORIRA!!' ) )

    @ 05 + 45 * 3, 05 BTNBMP PROMPT "At2348" SIZE 100,40 PIXEL OF oWnd FLAT ;
      ACTION ( msginfo('Alfonso Espinoza de los Monteros nacio en Quito NUNCA MORIRA!!' ) )

    @ 05 + 45 * 4, 05 BTNBMP PROMPT "At2349" SIZE 100,40 PIXEL OF oWnd FLAT ;
      ACTION ( msginfo('Alfonso Espinoza de los Monteros nacio en Quito NUNCA MORIRA!!' ) )

return nil

function mueveataudes( oWnd )

    local n := 10
    local i
    local oControl

    ++nVeces

    if nVeces % 2 == 0  //si es par
        n = -n
    else
        n = n
    end
    for i = 1 to len( oWnd:aControls )
        oControl         = oWnd:aControls[i]
        oControl:nTop    = oControl:nTop + n
        oControl:nLeft   = oControl:nLeft + n
        oControl:refresh()
        //oControl:nWidth  = oControl:nWidth + n
        //oControl:nHeight = oControl:nHeight + n
    next

return nil
 
https://ibb.co/0hnmRdP

Re: ot: cementerio del futuro

Posted: Wed Jan 02, 2019 7:11 pm
by Marcelo Via Giglio
Hola,

una idea

Code: Select all

#include 'fivewin.ch'

static nVeces, aTrayectoria := {{1,1},{1,1},{1,1},{0,1},{0,1},{-1,1},{-1,1},{-1,1},{-1,-1},{-1,-1},{-1,-1},{0,-1},{0,-1},{1,-1},{1,-1},{1,-1}}, ;
               aPos := {0,1,2,3,4}

function main()

    local oWnd
    local oBrush
    local nR       := 0
    local nG       := 0
    local nB       := 0
    local oTmr

    define brush oBrush color nRGB( nR, nG, nB )

    define window oWnd title 'cementerio futuro Katrin Gamboa' //STYLE NOSYSMENU

    define timer oTmr interval 150 ACTION MakeSome( oWnd ) OF oWnd


    SET BRUSH OF oWnd TO oBrush

    ataudes( oWnd )

    ACTIVATE TIMER oTmr


    activate window oWnd center //on init MakeSome( oWnd )



return nil

function MakeSome( oWnd )

    if empty( nVeces )
        nVeces = 0
    end

    mueveataudes( oWnd )

return nil


function ataudes( oWnd )

    @ 05         , 05 BTNBMP PROMPT "At2345" SIZE 100,40 PIXEL OF oWnd FLAT ;
      ACTION ( msginfo('Wilson Gamboa Nacio en Banios murio en Quito' ) )

    @ 05 + 45    , 05 BTNBMP PROMPT "At2346" SIZE 100,40 PIXEL OF oWnd FLAT ;
      ACTION ( msginfo('Julio Pazos Nacio en Quito murio en Quito' ) )

    @ 05 + 45 * 2, 05 BTNBMP PROMPT "At2347" SIZE 100,40 PIXEL OF oWnd FLAT ;
      ACTION ( msginfo('Alfonso Espinoza de los Monteros nacio en Quito NUNCA MORIRA!!' ) )

    @ 05 + 45 * 3, 05 BTNBMP PROMPT "At2348" SIZE 100,40 PIXEL OF oWnd FLAT ;
      ACTION ( msginfo('Alfonso Espinoza de los Monteros nacio en Quito NUNCA MORIRA!!' ) )

    @ 05 + 45 * 4, 05 BTNBMP PROMPT "At2349" SIZE 100,40 PIXEL OF oWnd FLAT ;
      ACTION ( msginfo('Alfonso Espinoza de los Monteros nacio en Quito NUNCA MORIRA!!' ) )

return nil

function mueveataudes( oWnd )

    local n := 10
    local i
    local oControl
  
    for i := 1 TO 5
        aPos[i] := ( aPos[i] + 1 ) % LEN( aTrayectoria ) + 1
    next

    for i = 1 to len( oWnd:aControls )
        oControl         = oWnd:aControls[i]
        oControl:nTop    = oControl:nTop + aTrayectoria[aPos[i],1]
        oControl:nLeft   = oControl:nLeft + aTrayectoria[aPos[i],2]
        oControl:refresh()
        //oControl:nWidth  = oControl:nWidth + n
        //oControl:nHeight = oControl:nHeight + n
    next

return nil


 
saludos

Marcelo Vía

Re: ot: cementerio del futuro

Posted: Thu Jan 03, 2019 12:02 am
by wilsongamboa
Muchas gracias Marcelo funciona super !!