He probado utilizar la clase TCanvas para Graficar dentro de un TForm y no he obtenido resultados exitosos.
Aquí muestro mi código
oCanvas:=TCanvas():Create()
oCanvas:HDc:=Form1:Handle
oCanvas:oDevice:=oCanvas:HDc
oPen:=TPen():Create()
oPen:nColor := CLR_BLACK
oPen:nWidth:=3
oCanvas:oPen(oPen)
oCanvas:MoveTo(50, 50 )
oCanvas:LineTo( 100, 100 )
En qué me estoy equivocando ? (puse en negrita la asignación del oDevice porque no estoy seguro si es así)
--
In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Como graficar sobre un Form
-
- Mensajes: 102
- Registrado: Mar Ago 15, 2006 3:28 pm
Como graficar sobre un Form
Mariano,
He probado utilizar la clase TCanvas para Graficar dentro de un TForm y no he obtenido resultados exitosos.
Aquí muestro mi código
oCanvas:=TCanvas():Create()
oCanvas:HDc:=Form1:Handle
oCanvas:oDevice:=oCanvas:HDc
oPen:=TPen():Create()
oPen:nColor := CLR_BLACK
oPen:nWidth:=3
oCanvas:oPen(oPen)
oCanvas:MoveTo(50, 50 )
oCanvas:LineTo( 100, 100 )
En qué me estoy equivocando ? (puse en negrita la asignación del oDevice porque no estoy seguro si es así)
Tienes que crear el canvas en el momento de pintar el formulario. Utiliza el evento OnPaint u OnPainted del formulario, así:
METHOD FormPainted( oSender, hDC, cPaintStruct ) CLASS TForm1
LOCAL oCanvas := TCanvas():New()
oCanvas:hDC := hDC
...
RETURN Nil
--
Un saludo,
José F. Giménez
http://www.xailer.com
--
He probado utilizar la clase TCanvas para Graficar dentro de un TForm y no he obtenido resultados exitosos.
Aquí muestro mi código
oCanvas:=TCanvas():Create()
oCanvas:HDc:=Form1:Handle
oCanvas:oDevice:=oCanvas:HDc
oPen:=TPen():Create()
oPen:nColor := CLR_BLACK
oPen:nWidth:=3
oCanvas:oPen(oPen)
oCanvas:MoveTo(50, 50 )
oCanvas:LineTo( 100, 100 )
En qué me estoy equivocando ? (puse en negrita la asignación del oDevice porque no estoy seguro si es así)
Tienes que crear el canvas en el momento de pintar el formulario. Utiliza el evento OnPaint u OnPainted del formulario, así:
METHOD FormPainted( oSender, hDC, cPaintStruct ) CLASS TForm1
LOCAL oCanvas := TCanvas():New()
oCanvas:hDC := hDC
...
RETURN Nil
--
Un saludo,
José F. Giménez
http://www.xailer.com
--