Ver Mensaje Individual
  #8  
Antiguo 01-12-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 28
Lepe Va por buen camino
Ahora comprendo la cara de asombro de cHackAll , yo también me quedé a cuadros

Código Delphi [-]
Procedure TForm1.Cuadrado (Const X,Y :integer);
Begin
  With Canvas Do
  Begin
    Pen.Mode := pmCopy;
    MoveTo (Origen.X,Origen.Y);
    Rectangle (Origen.X,Origen.Y,Punto.X,Punto.Y);
    MoveTo (Origen.X,Origen.Y);
    Rectangle (Origen.X,Origen.Y,X,Y);
  end; //Final del With Image1.Canvas
end;


procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
If Button = mbLeft Then
      Begin
          Pintando := True;
          Canvas.MoveTo (X,Y);
          Origen.X := X;
          Origen.Y := Y;
      end;
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
If Pintando Then
  begin
    Punto := Point (X,Y);
    ultimo := Point(x,y);
    BorrarUltimo := True;
    Canvas.Pen.Style := psDot;
    Canvas.Pen.Mode := pmCopy;
    Canvas.Rectangle(Origen.x, Origen.Y,x,y);

  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Pintando := False;
end;

procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
If Button = mbLeft Then
  Begin
    Pintando := False;
    Canvas.pen.style := pssolid;
    Canvas.Rectangle(Origen.x, Origen.Y, ultimo.x, ultimo.Y);
    Cuadrado(x,y);
  end;
end;
El modo pmNotXor lo que hace básicamente es invertir el color que haya en ese punto, con sus detalles y demás.... pero básicamente eso.

Lo que necesitas es usar pmCopy que será el que te pinta encima de otras piezas.

Tendrás que adaptarlo, ya que al incluir sólo la unidad tuve que copiar y pegar a una aplicación de prueba.

Tiene algunos fallitos, pero eso ya te lo dejo a ti.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita