Ver la Versión Completa : Ayuda con canvas en Delphi
Duargi
25-06-2010, 18:15:47
Gracias por ver esto.. Mi problema y duda es el siguiente, debo realizar un plano cartesiano en una Timage utilizando Canvas y tengo el siguiente codigo:
{i:=-150;
ii:=0;
while i<200 do
begin
imageMRU.Canvas.TextOut(ii,(trunc(imageMRU.height div 2)),'|');
i:=i+10;
ii:=ii+10;
end;
i:=-150;
ii:=0;
while i<=200 do
begin
imageMRU.Canvas.Textout(trunc(imageMRU.HEIGHT div 2),ii,'__');
i:=-150;
ii:=ii+10;
end;}
Pero por alguna razon este me da un error que no compila mi projecto, alguien que sepa cual es el problema y que pueda solucionarlo o darme una mejor idea.
De antemano Gracias.
Att: Duargi
delphi.com.ar
25-06-2010, 19:44:20
Resulta muy importante para poder ayudarte, que nos expliques que error arroja el compilador.
Saludos!
Duargi
25-06-2010, 19:54:58
Pues fijate que al darle Run (F9) fijate que hasta abajo en el Event Log sale esto: Module Load: COMCTL32.dll No Debug Info. Base Address: $ 74C60000. Process Project1.exe (3088) y resaltado en azul siempre sucede eso.
delphi.com.ar
25-06-2010, 21:15:19
El la ventana de "Event Log" no precisamente muestra los errores de compilación. Normalmente aparece una ventana "Build" donde filtra la salida de errores, warnings y hints del compilador. Ahí te detallará mas claramente el error sucedido.
Saludos!
Hola,
de todas maneras, por lo que parece lo que quieres hacer es una cuadrícula. Lo mejor seria algo asi:
canvas.Pen.Color := clBlack;
for i := 0 to (Canvas.Width div 10) - 1 do
begin
Canvas.MoveTo(i*10,0);
Canvas.LineTo(i*10,Height-1);
end;
for i := 0 to (Canvas.Height div 10) - 1 do
begin
Canvas.MoveTo(0,i*10);
Canvas.LineTo(Width-1,i*10)
end;
Y aun puedes usar el brush style y mas maneras... Saludos
Duargi
27-06-2010, 04:46:45
Hola,
de todas maneras, por lo que parece lo que quieres hacer es una cuadrícula. Lo mejor seria algo asi:
Código Delphi [-] (http://www.clubdelphi.com/foros/#) canvas.Pen.Color := clBlack; for i := 0 to (Canvas.Width div 10) - 1 do begin Canvas.MoveTo(i*10,0); Canvas.LineTo(i*10,Height-1); end; for i := 0 to (Canvas.Height div 10) - 1 do begin Canvas.MoveTo(0,i*10); Canvas.LineTo(Width-1,i*10) end;
Y aun puedes usar el brush style y mas maneras... Saludos
Gracias coso, tu codigo fuente esta muy bien.. Aunque lo que necesito es que tambien tenga divisiones, pues me refiero a numeros. Se te agradece.
Entonces de la misma manera, lo unico que tendrias que hacer es un par de lineas con los metodos moveto, linepos, que cruce el canvas por la mitad, y luego recorrerlas y dibujar lineas pequeñas, tambien con esos metodos. Un saludo.
Alejandro.Crts
17-08-2011, 01:28:50
Hola,
de todas maneras, por lo que parece lo que quieres hacer es una cuadrícula. Lo mejor seria algo asi:
canvas.Pen.Color := clBlack;
for i := 0 to (Canvas.Width div 10) - 1 do
begin
Canvas.MoveTo(i*10,0);
Canvas.LineTo(i*10,Height-1);
end;
for i := 0 to (Canvas.Height div 10) - 1 do
begin
Canvas.MoveTo(0,i*10);
Canvas.LineTo(Width-1,i*10)
end;
Y aun puedes usar el brush style y mas maneras... Saludos
Ta muy bueno ese fuente ;D, pero ve si lo que quieres solo es hacer el plano nomas puedes usar:
Image1.Canvas.MoveTo(0, Image1.Height div 2);
Image1.Canvas.LineTo(200, Image1.Height div 2);
Image1.Canvas.MoveTo(Image1.Height div 2, 0);
Image1.Canvas.LineTo(Image1.Height div 2, 200);
Image1.Canvas.LineTo(Image1.Height div 2, Image1.Height div 2);
P.D.Mi imagen esta de dimensiones iguales, osea 200x200.
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.