Page 1 of 1

Ayuda con Bitmap

Posted: Mon Nov 12, 2007 2:16 am
by ricardog
Buenas noches.

Tengo un bitmap que simula una grafica , pues bien, necesito trazar en el bitmap, 3 lineas, que uniran 4 puntos, y que estos "simularan" una grafica.
Lo hago de la siguiente manera.

function DrawLine(aLineas)
/*
AQUI SOLO TRAZAREMOS UNOS PEQUEÑOS PUNTOS EN CADA
COORDENADA DEL BITMAP
*/
hDc := oCv:oBmpHdc:GetDc()

hPen := CreatePen( 0, 5, RGB(0,0,0))
hOldPen := SelectObject( hDc, hPen )

//***** Primer Trazo

MoveTo( hDc, aLineas[1,1], aLineas[1,2] )
LineTo( hDc, aLineas[1,1], aLineas[1,2] )

MoveTo( hDc, aLineas[2,1], aLineas[2,2] )
LineTo( hDc, aLineas[2,1], aLineas[2,2] )

MoveTo( hDc, aLineas[3,1], aLineas[3,2] )
LineTo( hDc, aLineas[3,1], aLineas[3,2] )

MoveTo( hDc, aLineas[4,1], aLineas[4,2] )
LineTo( hDc, aLineas[4,1], aLineas[4,2] )

//***** Segundo Trazo

MoveTo( hDc, aLineas[5,1], aLineas[5,2] )
LineTo( hDc, aLineas[5,1], aLineas[5,2] )

MoveTo( hDc, aLineas[6,1], aLineas[6,2] )
LineTo( hDc, aLineas[6,1], aLineas[6,2] )

MoveTo( hDc, aLineas[7,1], aLineas[7,2] )
LineTo( hDc, aLineas[7,1], aLineas[7,2] )

MoveTo( hDc, aLineas[8,1], aLineas[8,2] )
LineTo( hDc, aLineas[8,1], aLineas[8,2] )

//***** Tercer Trazo

MoveTo( hDc, aLineas[9,1], aLineas[9,2] )
LineTo( hDc, aLineas[9,1], aLineas[9,2] )

MoveTo( hDc, aLineas[10,1], aLineas[10,2] )
LineTo( hDc, aLineas[10,1], aLineas[10,2] )

MoveTo( hDc, aLineas[11,1], aLineas[11,2] )
LineTo( hDc, aLineas[11,1], aLineas[11,2] )

MoveTo( hDc, aLineas[12,1], aLineas[12,2] )
LineTo( hDc, aLineas[12,1], aLineas[12,2] )


SelectObject( hDc, hOldPen )
DeleteObject( hPen )

oCv:oBmpHdc:ReleaseDC()

reuturn nil

Pues bien, tan solo dibuja la parte del TERCER TRAZO, y los restantes no los dibuja. Ademas de que cuando dejo el dialogo con ALT + TAB, esos trazos que dibujo se "Desaparecen".

Si alguien me puede echar una mano.

Por su atencion gracias

Ricardo E. Guardado Flores.

Posted: Mon Nov 12, 2007 6:55 am
by Antonio Linares
Ricardo,

Tienes que definir ese código para ser llamado desde:

oBitmap:bPainted = { | hDC | ...tu código... }

así cada vez que se repinte el bitmap, volverá a dibujar las líneas.

Si la tercera aparece, las otras tambien deben aparecer, salvo que te estés equivocando en las coordenadas. Revísalas

Posted: Tue Nov 13, 2007 10:58 pm
by ricardog
Sr. Linares
Muchas gracias por su ayuda, efectivamente, estaba pasando mal unas coordenadas.
Ahora ya las dibuja correctamente, pero ahora se presenta lo siguiente.

Tengo el dialogo (DIALOGO PAPA), donde se presentan las "graficas", y 2 botones, uno de los botones es para "CAPTURAR" la informacion que se interpretara, y el otro es para terminar. Antes de "dibujar" las lineas y los puntos, a los valores que me daran las coordenadas les asigino un valor de (CERO), y las "graficas" se dibujan correctamente, pero cuando oprimo el valor de la CAPTURA de los valores para interpretar la grafica, el dialogo de CAPTURA (DIALOGO HIJO), no aparece a menos que "CIERRE" el dialogo (PAPA). Si quito el codeblock del BITMAP, si me permite pasar al dialogo de la "CAPTURA", pero obviamente no me dibuja la "grafica".

Me podria ayudar con este detalle para encontrar el error?

Gracias.
Ricardo E. Guardado Flores.

Posted: Tue Nov 13, 2007 11:48 pm
by Antonio Linares
Ricardo,

Muéstranos el código para ver cómo lo estás haciendo, y a ser posible proporciónanos un ejemplo pequeño y autocontenido que podamos probar rapidamente para darte soporte. Gracias

Posted: Wed Nov 14, 2007 9:45 pm
by ricardog
Sr. Linares
Solucionado.

Estaba refrescando el bitmap despues de haber trazado las "graficas", quite esa instruccion, y listo

Por su atencion muchas gracias


Ricardo E. Guardado Flores.

Posted: Wed Nov 14, 2007 10:09 pm
by Antonio Linares
bien! :-)