Estoy con el proyecto fin de carrera, y necesito saber como crear gráficos en delphi, teniendo en cuenta que esos datos deben de cogerlos de unas tablas. Me gustaría que me informaseis de algún libro que trajera ese apartado bien explicado, o en su defecto que alguien me diga una forma de hacerlo, o el control que he de utilizar.
1 Respuesta
Respuesta de antipauli
1
1
antipauli, Analista/Programador de Sistemas Oracle
Para temas gráficos te recomiendo que visites esta web http://www.efg2.com/ que, a parte de ayudarte, tiene una extensa referencia bibliográfica. Además, no dejes de visitar http://q3.nu/trucomania/ junto con http://www.delphi3000.com/ dos de las mejores webs de trucos de Delphi.
Si, pero aquí me remites a unas páginas en internet. ¿A mí me gustaría saber cual es el componente dentro de delphi que me permite crear un gráfico que coja datos de unas tablas de bases de datos?. Gracias de todas formas.
Bien, para dibujar debes usar un timage, que al igual que el tpaintbox tiene canvas que es donde dibujaremos. Para ver los métodos del canvas, una vez hayas insertado un componente timage, puedes hacer timage1. Canvas. . Verás que puedes realizar círculos (ellipse), rectángulos, lineas, cambiar las propiedades del pincel (canvas. Pen), del relleno (canvas. Brush), etc. Para la conexión con la base de datos: 1. Creas un ODBC desde Panel de Control/Origenes de datos ODBC del tipo de tu base de datos. 2. Introduces un componente TQuery con la property Requestlive a true y con la linea: select * from <tabla> en la property SQL. 3. Introduces una dbgrid y un tdatasource y unes la dbgrid con el tdatasource mediante la property datasource y el tdatasource lo unes a la query mediante la property dataset. 4. Activas el tquery y verás los datos en la dbgrid. Luego sólo tiene que hacer un bucle, y dibujar lo que tengas en la BBDD: Ejemplo: var x1,y1,x2,y2 : integer; With Query1 do begin First; While not eof do begin x1 := Fieldbyname('x1').AsInteger; x2 := Fieldbyname('x2').AsInteger; y1 := Fieldbyname('y1').AsInteger; y2 := Fieldbyname('y2').AsInteger; Image1.Canvas.Rectangle(x1,y1,x2,y2); Next; end; end; No dejes de visitar www.efg2.com.