Lo primero: vamos a localizar desde donde se dibujan las l铆neas...
Lo primero: vamos a localizar desde donde se dibujan las l铆neas...
aqui no me deja ning煤n rastro ... 驴?
Te refieres al rastro en la regla, no?
La linea aparece mas gruesa
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
Yo uso un I7 y a煤n y asi se nota el efecto en las reglas
Antonio Linares wrote:Lo primero: vamos a localizar desde donde se dibujan las l铆neas...
FUNCTION SetReticule( nRow, nCol, nArea )
聽 聽aRuler[nArea,2]:Move( nRowPos, 0, ;
聽 聽 聽 IIF( lShow, ER_GetPixel( oGenVar:aAreaSizes[nArea,1] ) + nRuler, nRuler ), 1, .T. )聽 聽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. ) ), ) } )聽 聽aRuler[nArea,1]:Move( nRulerTop-nRuler, nColPos, 1, ;
聽 聽 聽 聽 聽 IIF( lShow, ER_GetPixel( oGenVar:aAreaSizes[nArea,2] ) + nRuler, nRuler ) )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 ![]()
Ok, vamos a seguir
聽 聽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 staticMirando 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 ...
Efectivamente, ya lo habia modificado yo en mi prg
Y de lo del InvertRect, c贸mo lo ves?
cnavarro wrote:Efectivamente, ya lo habia modificado yo en mi prg
Y de lo del InvertRect, c贸mo lo ves?
Cristobal,
Si, ese parece ser el c贸digo, lo 煤nico es que el hDC hay que generarlo:
hDC = oRulerBmp1:GetDC()
lo usamos...
oRulerBmp1:ReleaseDC()
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.
Manuel,
Borrado y subido al repositorio, gracias! ![]()