Hola a todos este es mi primer post asi que espero hacerme entender.
Bien mi problema radica en que quiero copiar un canvas que creo en una imagen. Bien ya esta casi todo menos la ubicación exacta del canvas origen que aun no he podido resolver, ya que en el canvas destino me sale corrido. Desde ya muchas gracias.
//Creo k se puede probar al tok poniendo un timage y sus respectivos eventos.
Código:
...
public
var
alto, ancho, StartX, StartY : integer;
...
procedure TForm1.imagenMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
begin
//para sakar el inicio del canvas
StartX:= X;
StartY:= Y;
end;
procedure TForm1.imagenMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
Origen, Destino, R: TRect;
begin
//realizar el canvas
Canvas.Brush.Style:= bsClear;
with Canvas do
begin
R.Left := StartX;
R.Top := StartY;
R.Right := x;
R.Bottom := y;
Canvas.Rectangle(R);
Origen:= R;
Destino.Left := 0;
Destino.Top := 0;
Destino.Right := ancho;
Destino.Bottom := alto;
CopyRect( Destino, Imagen.Canvas, Origen );
end;
end;
procedure TForm1.imagenMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
arriba, abajo, izquierda, derecha: integer;
begin
//para sakar el alto y el ancho
if ssLeft in Shift then { make sure button is down }
begin
if Y > StartY then
begin
abajo:= Y;
arriba:= StartY;
end
else
begin
arriba:= Y;
abajo:= StartY;
end;
if X > StartX then
begin
izquierda:= StartX;
derecha:= X;
end
else
begin
izquierda:= X;
derecha:= StartX;
end;
alto:= abajo - arriba;
ancho:= derecha - izquierda;
end;
end;