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

User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

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

Post by Antonio Linares »

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

Antonio Linares
www.fivetechsoft.com
User avatar
mastintin
Posts: 1502
Joined: Thu May 27, 2010 2:06 pm

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

Post by mastintin »

aqui no me deja ningún rastro ... ¿?
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

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

Post by cnavarro »

Te refieres al rastro en la regla, no?
La linea aparece mas gruesa
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

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

Post by Antonio Linares »

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
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

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

Post by cnavarro »

Yo uso un I7 y aún y asi se nota el efecto en las reglas
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

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

Post by cnavarro »

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

   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

   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

   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
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

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

Post by Antonio Linares »

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
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

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

Post by cnavarro »

Ok, vamos a seguir
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

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

Post by cnavarro »

Antonio
Sería algo asi?

Code: Select all

   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
 
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
User avatar
mastintin
Posts: 1502
Joined: Thu May 27, 2010 2:06 pm

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

Post by mastintin »

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
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

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

Post by cnavarro »

Efectivamente, ya lo habia modificado yo en mi prg
Y de lo del InvertRect, cómo lo ves?
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
User avatar
mastintin
Posts: 1502
Joined: Thu May 27, 2010 2:06 pm

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

Post by mastintin »

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
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

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

Post by Antonio Linares »

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
mastintin
Posts: 1502
Joined: Thu May 27, 2010 2:06 pm

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

Post by mastintin »

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
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

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

Post by Antonio Linares »

Manuel,

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

Antonio Linares
www.fivetechsoft.com
Post Reply