Parpadeo de un SAY

Parpadeo de un SAY

Postby José Camilo » Sat Mar 02, 2024 4:23 pm

Buenas tardes.
se puede lograr el parpadeo de un SAY?
si se puede. Como hacerlo?

Gracias
José Camilo
 
Posts: 210
Joined: Wed Apr 07, 2021 3:56 pm

Re: Parpadeo de un SAY

Postby karinha » Sat Mar 02, 2024 4:42 pm

si, se puede con SSAY.PRG y SSAY.CH

Download:

https://mega.nz/file/5QVUzRSS#CxqVYgUT9UVGs-YR0faToNmZYZkFekbZT5keQMGoccg

Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7795
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Parpadeo de un SAY

Postby karinha » Sat Mar 02, 2024 4:50 pm

Y también DSAY.PRG y DSAY.CH

Download:

https://mega.nz/file/kNcBTKjA#ViF4H4zNNbGcS5PQjQVR0KqJ08AZlBfrFsRPhdMTedY

Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7795
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Parpadeo de un SAY

Postby José Camilo » Sat Mar 02, 2024 4:57 pm

Gracias Joao por tu tiempo.
No es lo que busco.
Necesito que al cargar un dato en un GET ( por ejemplo codigo de cliente ) se me muestre el NOMBRE del mismo en un SAY y este quede parpadeando o titilando.
Se puede?

Gracias
José Camilo
 
Posts: 210
Joined: Wed Apr 07, 2021 3:56 pm

Re: Parpadeo de un SAY

Postby karinha » Sat Mar 02, 2024 5:11 pm

José, mira se ayuda:

https://forums.fivetechsupport.com/viewtopic.php?f=3&t=43239

Ó haga un DEMO y yo modifico para ti.

Gracias.

Regards, saludos
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7795
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Parpadeo de un SAY

Postby JoseAlvarez » Sat Mar 02, 2024 5:49 pm

José,

Te doy una idea, si te sirve así, puedes adaptarla a tu caso.
Yo lo hago simulando el parpadeo mostrando/ocultando el SAY con el uso de un timer

Code: Select all  Expand view
Define Dialog oDlg_EditarPromotores resource "oDlg_NewPromotor" title 'Actualizar cambios en este Promotor'
  oDlg_EditarPromotores:lHelpIcon:=.f.
  oDlg_EditarPromotores:SetFont(_oFontDlgs)

  Redefine say oSay1 id 4016 of oDlg_EditarPromotores
  oSay1:SetColor( nSayTextColor, nSayBackColor )
  oSay1:SetText('Editando...')
  oSay1:SetFont(oFontSayEdit)
  oSay1:lTransparent:=.t.

  define timer oTimer interval 3800 action Fnct_Blinker()
  ...
  ...

Activate Dialog ..

***************************************************************
Static Function Fnct_Blinker()

    nCountBlink++

    if (nCountBlink/2) <> int(nCountBlink/2)
        oSay1:Hide()
     else
        oSay1:Show()
    endif

    oSay1:Refresh()

return .t.

**************************************************************
 


Esta linea:

Code: Select all  Expand view
if (nCountBlink/2) <> int(nCountBlink/2)


me indica si el contador es par o impar, dependiendo de eso, oculta o muestra.

y aumentado o disminuyendo el valor en el timer, le das la velocidad de parpadero que deseas:

Code: Select all  Expand view
define timer oTimer interval 3800 action Fnct_Blinker()


espero te sirva.
"Los errores en programación, siempre están entre la silla y el teclado..."

Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin

Carora, Estado Lara, Venezuela.
User avatar
JoseAlvarez
 
Posts: 792
Joined: Sun Nov 09, 2014 5:01 pm

Re: Parpadeo de un SAY

Postby José Camilo » Sat Mar 02, 2024 6:54 pm

Joao y José: Gracias por molestarse!!!

Algo debo esta haciendo mal ( muy Mal )
No logro hacerlo funcionar.

mi fuente es asi:
.....
REDEFINE GET oRamo VAR nRamo PICTURE "99" ID Ma_Ramo OF oDlgMa valid veoramo(@nRamo,@cVeoRamo) .and. (oRamo:Refresh(),oVeoRamo:Refresh(),.t.)

REDEFINE SAY oVeoRamo VAR cVeoRamo PICTURE "@K!" ID Ma_VeoRamo OF oDlgMa

donde la funcion VeoRamo me devuelve 2 valores, 1 codigo y un detalle.. este detalle es el que quiero hacer parpadear.

he probado asi lo de JOAO

REDEFINE GET oRamo VAR nRamo PICTURE "99" ID Ma_Ramo OF oDlgMa valid veoramo(@nRamo,@cVeoRamo) .and. (oRamo:Refresh(),oVeoRamo:Refresh(),.t.)


REDEFINE DYNAMIC SAY VAR cVeoRamo ID Ma_VeoRamo OF oDlgMa;
HORIZONTAL SCROLL WRAP;
RIGHT SHADED;
COLOR CLR_WHITE, CLR_BLUE //FONT oFont

y no hay caso, incluso intente pasar el parametro objeto del say y me da error en la palabra DYNAMIC


y he probado asi con la sugerencia de José

REDEFINE GET oRamo VAR nRamo PICTURE "99" ID Ma_Ramo OF oDlgMa valid veoramo(@nRamo,@cVeoRamo) .and. (oRamo:Refresh(),oVeoRamo:Refresh(),.t.)

REDEFINE SAY oVeoRamo VAR cVeoRamo PICTURE "@K!" ID Ma_VeoRamo OF oDlgMa

DEFINE TIMER oTmr INTERVAL 50 ACTION (Fnct_Blinker(@oVeoRamo),oVeoRamo:Refresh())

pasando el objeto porque no es publico sin tocar la funcion Fnct_Blinker

y tampoco logro el parpadeo, es mas no me realiza ningun cambio.

Esta es muy parecida a una propuesta de WILLIY que tampoco logro hacer funcionar

lo dicho. algo estoy haciendo mal, muy mal.

gracias igual por su tiempo
José Camilo
 
Posts: 210
Joined: Wed Apr 07, 2021 3:56 pm

Re: Parpadeo de un SAY

Postby JoseAlvarez » Sat Mar 02, 2024 7:29 pm

Si pasas el codigo completo, creo que seria mas facil ayudarte.
Por lo pronto, comenta esta parte

Code: Select all  Expand view
.and. (oRamo:Refresh(),oVeoRamo:Refresh(),.t.)


no le veo el sentido, creo que eso hace que no se ejecute el valid,

ponla asi:

Code: Select all  Expand view
valid veoramo(@nRamo,@cVeoRamo) //.and. (oRamo:Refresh(),oVeoRamo:Refresh(),.t.)


y quitale esto a la llamanda del timer

Code: Select all  Expand view
,oVeoRamo:Refresh()


y si estas pasando el objeto como parametro a la funcion blinker,

Code: Select all  Expand view
Fnct_Blinker(@oVeoRamo)


recuerda colocarla en la funcion, y sin el @, es decir:

Code: Select all  Expand view
Function Fnct_Blinker(oVeoRamo)


prueba asi y nos comentas.
"Los errores en programación, siempre están entre la silla y el teclado..."

Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin

Carora, Estado Lara, Venezuela.
User avatar
JoseAlvarez
 
Posts: 792
Joined: Sun Nov 09, 2014 5:01 pm

Re: Parpadeo de un SAY

Postby José Camilo » Sat Mar 02, 2024 10:30 pm

Estimado José.
Si saco los refresh() ( que lo hice ) no me actualiza ni el get ni el detalle
la variable se pasa con @ pero se recibe sin ella.
Todo lo sugerido lo intente y no va.
asi me quedo el codigo en discordia


Function Materiales()
local ......

DEFINE DIALOG oDlgMa RESOURCE "Material"

DEFINE TIMER oTmr INTERVAL 50 ACTION (Fnct_Blinker(@oVeoRamo),oVeoRamo:Refresh())

REDEFINE GET oCodigo VAR nCodigo PICTURE "9999" ID Ma_Codigo OF oDlgMa when .f. //valid nCodigo > 0 .and. ValCodigo(nCodigo,agrega,'Código de Cliente ')
REDEFINE GET oDetalle VAR cDetalle PICTURE "@K!" ID Ma_Detalle OF oDlgMa valid !empty(cDetalle)
REDEFINE GET oAbrevia VAR cAbrevia PICTURE "@K!" ID Ma_Abrevia OF oDlgMa
REDEFINE GET oRamo VAR nRamo PICTURE "99" ID Ma_Ramo OF oDlgMa valid veoramo(@nRamo,@cVeoRamo) .and. (oRamo:Refresh(),oVeoRamo:Refresh(),.t.)

/*
REDEFINE DYNAMIC SAY VAR cVeoRamo ID Ma_VeoRamo OF oDlgMa;
HORIZONTAL SCROLL WRAP;
RIGHT SHADED;
COLOR CLR_WHITE, CLR_BLUE //FONT oFont
*/
REDEFINE SAY oVeoRamo VAR cVeoRamo PICTURE "@K!" ID Ma_VeoRamo OF oDlgMa
REDEFINE GET oCosto VAR nCosto PICTURE "999,999.99" ID Ma_Costo OF oDlgMa valid nCosto>0
REDEFINE GET oUltActPre VAR dUltActPre ID Ma_CostoAl OF oDlgMa
REDEFINE GET oUnidad VAR cUnidad PICTURE "@K!" ID Ma_Unidad OF oDlgMa
REDEFINE GET oLargo VAR nLargo PICTURE "999.999" ID Ma_Largo OF oDlgMa
REDEFINE GET oAncho VAR nAncho PICTURE "999.999" ID Ma_Ancho OF oDlgMa
REDEFINE GET oPeso VAR nPeso PICTURE "999999" ID Ma_Peso OF oDlgMa
REDEFINE GET oObserva VAR cObserva PICTURE "@K!" ID Ma_Observa OF oDlgMa
REDEFINE GET oProve1 VAR nProve1 PICTURE "9999" ID Ma_Prove1 OF oDlgMa valid VeoProve(@nProve1,cVeoProve1) .and. (oProve1:Refresh(),oVeoProve1:Refresh(),.t.)
REDEFINE SAY oVeoProve1 VAR cVeoProve1 PICTURE "@K" ID Ma_VeoProv1 OF oDlgMa
REDEFINE GET oPreProv1 VAR nPreProv1 PICTURE "999,999.99" ID Ma_PreProv1 OF oDlgMa when nProve1>0
REDEFINE GET oFecPrePr1 VAR dFecPrePr1 ID Ma_PreProv1Al OF oDlgMa when nProve1>0
REDEFINE GET oProve2 VAR nProve2 PICTURE "9999" ID Ma_Prove2 OF oDlgMa valid VeoProve(@nProve2,cVeoProve2,.t.) .and. (oProve2:Refresh(),oVeoProve2:Refresh(),.t.)
REDEFINE SAY oVeoProve2 VAR cVeoProve2 PICTURE "@K" ID Ma_VeoProv2 OF oDlgMa
REDEFINE GET oPreProv2 VAR nPreProv2 PICTURE "999,999.99" ID Ma_PreProv2 OF oDlgMa when nProve2>0
REDEFINE GET oFecPrePr2 VAR dFecPrePr2 ID Ma_PreProv2Al OF oDlgMa when nProve2>0
REDEFINE GET oProve3 VAR nProve3 PICTURE "9999" ID Ma_Prove3 OF oDlgMa valid VeoProve(@nProve3,cVeoProve3,.t.) .and. (oProve3:Refresh(),oVeoProve3:Refresh(),.t.)
REDEFINE SAY oVeoProve3 VAR cVeoProve3 PICTURE "@K" ID Ma_VeoProv3 OF oDlgMa
REDEFINE GET oPreProv3 VAR nPreProv3 PICTURE "999,999.99" ID Ma_PreProv3 OF oDlgMa when nProve3>0
REDEFINE GET oFecPrePr3 VAR dFecPrePr3 ID Ma_PreProv3Al OF oDlgMa when nProve3>0

REDEFINE BTNBMP oAceptar ID Ma_Aceptar OF oDlgMa FILENAME "ACEPTAR.BMP" ACTION Eval(Graba)
REDEFINE BTNBMP oCancelar ID Ma_Cancelar OF oDlgMa FILENAME "CANCELA.BMP" CANCEL ACTION oDlgMa:End()

oAceptar:lTransparent = .t.
oCancelar:lTransparent = .t.
ACTIVATE DIALOG oDlgMa CENTERED

if lSave
if agrega
Materia->(DbAppend())
Materia->Codigo := nCodigo
endif
Materia->Detalle := cDetalle
Materia->Abrevia := cAbrevia
Materia->Ramo := nRamo
Materia->Costo := nCosto
Materia->Unidad := cUnidad
Materia->Largo := nlargo
Materia->Ancho := nAncho
Materia->Peso := nPeso
Materia->UltActPre := dUltActPre
Materia->Observa := cObserva
Materia->Prove1 := nProve1
Materia->Prove2 := nProve2
Materia->Prove3 := nProve3
Materia->PreProv1 := nPreProv1
Materia->PreProv2 := nPreProv2
Materia->PreProv3 := nPreProv3
Materia->FecPrePro1 := dFecPrePr1
Materia->FecPrePro2 := dFecPrePr2
Materia->FecPrePro3 := dFecPrePr3

Acciones->(DbAppend())
Acciones->Usuario := usuari
Acciones->Fecha := date()
Acciones->Hora := left(time(),5)
Acciones->Detalle := if(agrega,'Agregó el Material '+alltrim(cdetalle),'Modifico el Material '+alltrim(cDetalle))

dbcommitall()

endif
Materia->(dbsetorder(queor))
Materia->(DbGoTop())

return NIL
*----------------------------------------------------------------------------------------------------------//

//-----------------------------------------------------------------------
*
* funcion de WILLY
*
Function Blinker(oCtrl, oTmr)
Static lOn := .f.
oTmr:DeActivate()
if lOn
oCtrl:Enable() //Hide()
else
oCtrl:Disable() //Show()
endif
lOn := !lOn
oTmr:Activate()
oCtrl:Refresh()
Return(Nil)

***************************************************************
*
* funcion de José
*
Static Function Fnct_Blinker(oSay1)

nCountBlink++

if (nCountBlink/2) <> int(nCountBlink/2)
oSay1:Hide()
else
oSay1:Show()
endif

oSay1:Refresh()

return .t.



Gracias por tu tiempo.
José Camilo
 
Posts: 210
Joined: Wed Apr 07, 2021 3:56 pm

Re: Parpadeo de un SAY

Postby José Camilo » Sat Mar 02, 2024 11:01 pm

el problema viene por que no se ejecuta el timer y no se por que
José Camilo
 
Posts: 210
Joined: Wed Apr 07, 2021 3:56 pm

Re: Parpadeo de un SAY

Postby Willi Quintana » Sun Mar 03, 2024 12:20 am

Pueda que esto te sirva, a mi me funciona bien
Code: Select all  Expand view

DEFINE DIALOG oDlg FONT oFont RESOURCE "IMPOREXPOR" TITLE cMensa

       DEFINE TIMER oTmr INTERVAL 1000 ACTION Blinker(oSay, oTmr)
       REDEFINE XIMAGE oImg RESOURCE "EXCEL2DB" ID 100 OF oDlg
       REDEFINE SAY oSay VAR cMen ID 125 FONT oFont1 COLOR CLR_RED OF oDlg
...
..
.
ACTIVATE DIALOG oDlg CENTER ON ( oTmr:Activate() )
oTmr:DeActivate()


//--------------------------------------------------------------------------------------------------------
Function Blinker(oCtrl, oTmr)
Static lOn := .f.
oTmr:DeActivate()
if lOn
   oCtrl:Enable() //Hide()
else
   oCtrl:Disable() //Show()
endif
lOn := !lOn
oTmr:Activate()
Return(Nil)

 
Last edited by Willi Quintana on Sun Mar 03, 2024 1:13 am, edited 1 time in total.
User avatar
Willi Quintana
 
Posts: 1019
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú

Re: Parpadeo de un SAY

Postby JoseAlvarez » Sun Mar 03, 2024 12:54 am

prueba haciendo estos cambios:

Code: Select all  Expand view
DEFINE TIMER oTmr INTERVAL 50 ACTION (Fnct_Blinker(@oVeoRamo))


Code: Select all  Expand view
//REDEFINE SAY oVeoRamo   VAR cVeoRamo   PICTURE "@K!"        ID Ma_VeoRamo OF oDlgMa
REDEFINE SAY oVeoRamo ID Ma_VeoRamo OF oDlgMa
oVeoRamo:SetText(cVeoRamo)


Code: Select all  Expand view
Function Fnct_Blinker(oVeoRamo)

nCountBlink++

if (nCountBlink/2) <> int(nCountBlink/2)
oVeoRamo:Hide()
else
oVeoRamo:Show()
endif

oVeoRamo:Refresh()

return .t.
 


No veo esta funcion:

Code: Select all  Expand view
valid veoramo(@nRamo,@cVeoRamo)
"Los errores en programación, siempre están entre la silla y el teclado..."

Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin

Carora, Estado Lara, Venezuela.
User avatar
JoseAlvarez
 
Posts: 792
Joined: Sun Nov 09, 2014 5:01 pm

Re: Parpadeo de un SAY

Postby José Camilo » Sun Mar 03, 2024 12:24 pm

Gracias Willy, ya había probado tu solución y me fallaba porque me faltaba pasar oTmr como @oTmr
asi me funciona perfecto. Gracias!!!

José: Probé tu sugerencia y no me funciona. no me muestra en ningún caso el detalle.
MUCHAS GRACIAS por tu tiempo.

José Camilo
José Camilo
 
Posts: 210
Joined: Wed Apr 07, 2021 3:56 pm

Re: Parpadeo de un SAY

Postby JoseAlvarez » Sun Mar 03, 2024 3:49 pm

José, lo que estas necesitando no reviste mayor complicación.

Si quieres lo podemos ver mañana lunes por anydesk.

No se en que pais estas, sera ponernos de acuerdo a que hora, tomando en cuenta las diferencia horaria. Yo estoy en Venezuela.
"Los errores en programación, siempre están entre la silla y el teclado..."

Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin

Carora, Estado Lara, Venezuela.
User avatar
JoseAlvarez
 
Posts: 792
Joined: Sun Nov 09, 2014 5:01 pm

Re: Parpadeo de un SAY

Postby José Camilo » Sun Mar 03, 2024 10:03 pm

Estimado José.
Estoy en Argentina. Te agradezco infinitamente tu predisposición. Ya lo soluciones.
En mi caso TU muletilla va como anillo al dedo!!!!

"Los errores en programación, siempre están entre la silla y el teclado..."
:D :D :D

Muchas Gracias!!!
José Camilo
 
Posts: 210
Joined: Wed Apr 07, 2021 3:56 pm

Next

Return to FiveWin para Harbour/xHarbour

Who is online

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