La Web del Programador: Comunidad de Programadores
 
    Pregunta:  17616 - DIBUJAR UN GRID EN UNA FORMA
Autor:  Victor Vargas
Saludos:

¿Cómo pudiera dibujar un grid, similar al de la Forma en tiempo de diseño de Delphi, y que cuando cambie de tamaño la forma no se note el redibujado de dicho grid?

Yo realicé un código sencillo que lo hace y que se ejecuta en el evento OnPaint de la forma, lo que sucede es que cuando se cambia de tamaño la forma se nota mucho el dibujado del grid, aquí les doy el código:

procedure TFrm_DsnDefaultWnd._DrawGrid(Sender: TObject);
var
i, j: integer;
begin
{ Drawin' the grid }
for i := 0 to Width do
for j := 0 to Height do
Canvas.Pixels[i * 8, j * 8] := Color xor $00FFFFFF;
end;

Les agradecería mucho su ayuda.

GRACIAS DE ANTEMANO.
Saludos

  Respuesta:  Marco Romero
Por lo que veo del código que envías, creo que se nota mucho el redibujado porque estás intentando darle color a pixels que están hasta 8 veces después del ancho/alto del formulario. Intenta probar ésto:

procedure TForm1.FormPaint(Sender: TObject);
var
i, j: integer;
begin
{ Drawin' the grid }

for i := 0 to Width div 8 do
for j := 0 to Height div 8 do
Canvas.Pixels[i * 8, j * 8] := Color xor $00FFFFFF;
end;