Page 1 of 1

DSay

PostPosted: Mon Sep 21, 2015 6:19 pm
by VitalJavier
Hola a todos

Hace tiempo probe DSay y funciono perfecto para las necesidades que tenia en ese momento
Ahora quiero poner varios letreros deslizando (uno tras otro) pero no se en que momento
termina el primero para poner el segundo y así sucesivamente

Alguien me podría echar la mano

Gracias de antemano.

Re: DSay

PostPosted: Mon Sep 21, 2015 6:59 pm
by Armando
Javier:

Si los textos han de aparecer en el mismo lugar, se me ocurre que hagas un texto largo
con todos los textos que deben aparecer, separados por espacios entre uno y otro.

Saludos

Re: DSay

PostPosted: Tue Sep 22, 2015 2:45 pm
by VitalJavier
Armando, un gusto saludarte.

Ya le intente asi como me dices, pero no resulta, se ven como encimados
yo creo por ser tan largo el texto.

y como van a estar cambiando los texto (por eso de las ofertas), tiene que ser
por cada uno.

Saludos.

Re: DSay

PostPosted: Tue Sep 22, 2015 3:08 pm
by Armando
Javier:

También me da gusto saludarte.

Creo que el espacio que debe llevar entre el primero y el segundo texto
debe ser del mismo tamaño que el largo del primero para dar tiempo a
que desaparezca el primero antes de que aparezca el segundo, de esta forma
no se enciman, y así sucesivamente entre el segundo y el tercero, entre el
tercero y el cuarto etc. etc.

Otra posibilidad que se me ocurre "al vuelo" (no la he probado) es que uses
un timer que vaya "de la mano" con la velocidad del control DSAY (SPEED 55)
y en función a ese timer será el texto que muestres. (Espero haberme explicado)

Saludos

Re: DSay

PostPosted: Tue Sep 22, 2015 5:19 pm
by VitalJavier
Armando

Ya probe las 2 opciones pero no funcionan
La primera de un solo texto con espacios al final, como que quiere funcionar pero
no del todo.

Y la del timer, mmmmm no se en que momento cambiar el letrero por que el (55 speed)
es la velocidad con que se mueve el letrero, pero sigo sin saber en que momento termino
de pasar el letrero.

Seguiré intentando y si lo resuelvo ya pondré la solución aquí.

Saludos.

Re: DSay

PostPosted: Tue Sep 22, 2015 6:05 pm
by karinha
Holá, mira se ayuda:

http://www.4shared.com/zip/I0yk-KP4ba/TESTDSAY.html

Necesitas una cuenta en: www.4shared.com

saludos.

Re: DSay

PostPosted: Wed Sep 23, 2015 2:51 pm
by VitalJavier
Karinha, gracias por el demo

Ya vi el demo, pero ahi solo muestra un mensaje pasando "Texto de Prova A Velocidade Base"
yo tengo una tabla donde tengo 10 mensajes y quiero pasarlos de uno por uno.

El detalle que no se cuando termina de pasar el primero para comenzar a pasar el segundo y asi todos.

Saludos.

Re: DSay

PostPosted: Wed Sep 23, 2015 3:20 pm
by karinha
haga un TIMER y use Hide() y Show() prueba e comente, saludos.

Re: DSay

PostPosted: Wed Sep 23, 2015 3:56 pm
by VitalJavier
Karinha

Code: Select all  Expand view

FUNCTION LLENA_MARQUEZINA   
    MENSAJES->(DbGoTop())
    cSayMz := MENSAJES->NOMBRE
RETURN .T.

FUNCTION MARQUEZINA
    @25,0 DYNAMIC SAY oSayMz VAR cSayMz OF oWin HORIZONTAL SCROLL SPEED RETORNA_SYSP("VELOCIDAD_MARQUEZINA") WRAP RIGHT FONT aLetras[19] SIZE aArea[4]*2,40
    DEFINE TIMER oTimerW INTERVAL 18000 ACTION Actualiza_Marquezina() OF oWin   // Aquí los 18 segundos los conte (ahi termina de pasar el letrero completo)
    oTimerW:Activate()
RETURN .T.

FUNCTION ACTUALIZA_MARQUEZINA
    MENSAJES->(DbSkip())
    IF MENSAJES->(Eof())
        MENSAJES->(DbGoTop())
    ENDIF
    cSayMz := MENSAJES->NOMBRE
    oSayMz:SetText(cSayMz)
    oSayMz:Refresh()
RETURN .T.

 


Solo así lo pude solucionar

Saludos.

Re: DSay

PostPosted: Wed Sep 23, 2015 5:28 pm
by karinha
Muy bién, gracias por compartir la idea.

Re: DSay

PostPosted: Thu Sep 24, 2015 2:50 am
by Armando
Javier:

Excelente, dos cabezas piensan más que una.

Saludos