El ratón al moverse deja "rastro" en las reglas

El ratón al moverse deja "rastro" en las reglas

Postby Antonio Linares » Fri Aug 15, 2014 3:29 pm

Lo primero: vamos a localizar desde donde se dibujan las líneas...
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41187
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: El ratón al moverse deja "rastro" en las reglas

Postby mastintin » Fri Aug 15, 2014 4:34 pm

aqui no me deja ningún rastro ... ¿?
User avatar
mastintin
 
Posts: 1516
Joined: Thu May 27, 2010 2:06 pm

Re: El ratón al moverse deja "rastro" en las reglas

Postby cnavarro » Fri Aug 15, 2014 5:06 pm

Te refieres al rastro en la regla, no?
La linea aparece mas gruesa
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6498
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: El ratón al moverse deja "rastro" en las reglas

Postby Antonio Linares » Fri Aug 15, 2014 6:46 pm

Imagino que debe estar relacionado con la velocidad del ordenador y de la tarjeta gráfica.

Estoy probandolo en un laptop antiguo (Mac blanco) y se le amontonan los repintados apareciendo a veces como un código de barras
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41187
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: El ratón al moverse deja "rastro" en las reglas

Postby cnavarro » Fri Aug 15, 2014 7:28 pm

Yo uso un I7 y aún y asi se nota el efecto en las reglas
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6498
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: El ratón al moverse deja "rastro" en las reglas

Postby cnavarro » Fri Aug 15, 2014 8:19 pm

Antonio Linares wrote:Lo primero: vamos a localizar desde donde se dibujan las líneas...


Es en la function
FUNCTION SetReticule( nRow, nCol, nArea )


de EReport.Prg

Movimiento vertical del raton: no funciona demasiado mal porque solo pinta en el área en el que estamos posicionados
Code: Select all  Expand view

   aRuler[nArea,2]:Move( nRowPos, 0, ;
      IIF( lShow, ER_GetPixel( oGenVar:aAreaSizes[nArea,1] ) + nRuler, nRuler ), 1, .T. )
 


Movimiento Horizontal del ratón: aquí viene el problema porque ha de pintar en todas las reglas de todas las áreas
Code: Select all  Expand view

   AEVAL( aRuler, {|x,y| IIF( x[1] <> NIL, ;
      ( x[1]:Move( nRulerTop-nRuler, nColPos, 1, ;
          IIF( lShow, ER_GetPixel( oGenVar:aAreaSizes[y,2] ) + nRuler, nRuler ), .T. ) ), ) } )
 


Si sustituímos el código anterior, por:
Code: Select all  Expand view

   aRuler[nArea,1]:Move( nRulerTop-nRuler, nColPos, 1, ;
          IIF( lShow, ER_GetPixel( oGenVar:aAreaSizes[nArea,2] ) + nRuler, nRuler ) )
 

mejora significativamente, porque sólo pinta en la regla del área en que nos encontramos, igual que en el movimiento vertical
Para mi me vale de momento, qué opinas?

Además, en el msgbar sólo pinta la fila en relación al área en que estamos situados (posición relativa)
Creo que sería conveniente ver la forma de poner además la posición de la fila absoluta respecto al inicio del listado
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6498
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: El ratón al moverse deja "rastro" en las reglas

Postby Antonio Linares » Fri Aug 15, 2014 9:54 pm

Cristobal,

he probado lo que comentas pero necesitamos que se pinte en todas las areas.

Por lo que veo usa un SAY (la línea) y lo va moviendo. Eso no es nada eficiente.

Deberíams usar InvertRect() para dibujar esas líneas y quitar los SAYs. Eso haria que funcionase muy rápido, espero :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41187
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: El ratón al moverse deja "rastro" en las reglas

Postby cnavarro » Fri Aug 15, 2014 9:59 pm

Ok, vamos a seguir
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6498
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: El ratón al moverse deja "rastro" en las reglas

Postby cnavarro » Sat Aug 16, 2014 8:27 am

Antonio
Sería algo asi?
Code: Select all  Expand view

   if !empty( aOldRect )
      InvertRect( oRulerBmp1:hDC , aOldRect )
   endif
   aNewRect := { nRulerTop - nRuler, nColPos, nRulerTop, nColPos }
   InvertRect( oRulerBmp1:hDC , aNewRect )
   aOldRect := aNewRect

// aOldRect y aNewRect son variables static
 
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6498
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: El ratón al moverse deja "rastro" en las reglas

Postby mastintin » Sat Aug 16, 2014 9:54 am

Mirando el Código veo que se usa la misma variable publica para dibujar todas las "reglas" ( oRulerBmp2 ) , ya que estamos con ello creo que se debería cambiar y usar dos arrays aRulerbmp1 y aRulerbmp2 uno con las "reglas" horizontales y otra con las verticales , de paso que estas "reglas" sean DATAs de oApp así podríamos acceder a ellas individualmente sise necesitase ...
Last edited by mastintin on Sat Aug 16, 2014 10:06 am, edited 2 times in total.
User avatar
mastintin
 
Posts: 1516
Joined: Thu May 27, 2010 2:06 pm

Re: El ratón al moverse deja "rastro" en las reglas

Postby cnavarro » Sat Aug 16, 2014 9:56 am

Efectivamente, ya lo habia modificado yo en mi prg
Y de lo del InvertRect, cómo lo ves?
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6498
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: El ratón al moverse deja "rastro" en las reglas

Postby mastintin » Sat Aug 16, 2014 9:58 am

cnavarro wrote:Efectivamente, ya lo habia modificado yo en mi prg
Y de lo del InvertRect, cómo lo ves?

Por cierto InvertRect( oRulerBmp1:hDC , aOldRect ) entiendo que invierte el color de lo dibujado . ¿ Es así ? , porque entonces no serviría ya que al ser el fondo gris el inverso sería un gris mas claro que ni siquiera se vería ... tendría que dibujar una linea negra ...
He intentado hacer algo con invertRect pero no me sale nada :-(

¿una opción seria usar DrawFocusRect ?
User avatar
mastintin
 
Posts: 1516
Joined: Thu May 27, 2010 2:06 pm

Re: El ratón al moverse deja "rastro" en las reglas

Postby Antonio Linares » Sat Aug 16, 2014 10:32 am

Cristobal,

Si, ese parece ser el código, lo único es que el hDC hay que generarlo:

hDC = oRulerBmp1:GetDC()
lo usamos...
oRulerBmp1:ReleaseDC()
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41187
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: El ratón al moverse deja "rastro" en las reglas

Postby mastintin » Sat Aug 16, 2014 10:38 am

el archivo point.c se puede eliminar del enlazado solo sustituyendo las llamadas de ER_LPTODP por LPTODP y las de ER_DPTOLP por DPTOLP.
User avatar
mastintin
 
Posts: 1516
Joined: Thu May 27, 2010 2:06 pm

Re: El ratón al moverse deja "rastro" en las reglas

Postby Antonio Linares » Sat Aug 16, 2014 10:47 am

Manuel,

Borrado y subido al repositorio, gracias! :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41187
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Next

Return to EasyReport, EasyDialog y EasyPreview

Who is online

Users browsing this forum: No registered users and 1 guest