Ver Mensaje Individual
  #6  
Antiguo 29-08-2012
Comandant Comandant is offline
Miembro
NULL
 
Registrado: ago 2012
Ubicación: Salta
Posts: 34
Reputación: 0
Comandant Va por buen camino
Hola nuevamente, agradezco por su atención y estoy en deuda, aunque hoy estuve viendo mi código y me anduvo muy bien, nose porque la otra vez no me dio el resultado esperado me quede pensando en el porque?, Bien escafandra tu código es lo mismo que el mio nada mas que mas simplificado y me diste nuevas ideas con el valor absoluto, porque había probado de sumar a su left el width de un elemento dado y a veces me daba excepciones por el número negativo, dejo avisando que ambos códigos tienen un problema y es que cuando haces un rectángulo de derecha a izquierda da como un resultado final una imagen tipo espejo, no creo que sea muy difícil de solucionar así que me pondré a trabajar. Desde ya muchas Gracias

Aqui esta código final para los que lo quieran, obviamente el resto ya lo saben...

Código Delphi [-]
procedure TForm2.Image1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  Origen, Destino: TRect;
begin
//realizar el canvas
Canvas.Brush.Style:= bsClear;
  with Canvas do
  begin
    if StartX > X then
      begin
      Origen.Left := X;
      Origen.Right := StartX;
      end
    else
      begin
      Origen.Left := StartX;
      Origen.Right := x;
      end;
    if StartY > Y then
      begin
      Origen.Top := Y;
      Origen.Bottom := StartY;
      end
    else
      begin
      Origen.Top := StartY;
      Origen.Bottom := y;
      end;
    Canvas.Rectangle(Origen);
    Destino.Left := 0;
    Destino.Top := 0;
    Destino.Right := abs(Origen.Left - Origen.Right);
    Destino.Bottom := abs(Origen.Top - Origen.Bottom);
    CopyRect( Destino, Image1.Canvas, Origen);
  end;
end;

Última edición por Comandant fecha: 29-08-2012 a las 19:38:03.
Responder Con Cita