Delphi - Arreglo de imagen

 
Vista:

Arreglo de imagen

Publicado por G@rgol (18 intervenciones) el 04/05/2006 14:05:50
Estoy haciendo un sistemita y estoy trabajando con imagenes, quiero que cuando pase el mouse por encima de una se agrande, tengo dos opciones

1- en el evento OnMouseMove de la imagen cambiarla por una mas grande pero cuando sigo moviendo el mouse dentro de la imagen parpadea y se ve bastante feo
2- hacerle un zoom a la imagen desde delphi pero no tengo ni la mas minima idea.

Espero que me ayuden a resolver este problema
de antemano
gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Arreglo de imagen

Publicado por Dr Juzam (821 intervenciones) el 04/05/2006 16:48:04
He puesto una imagen con Stretch a true. SCon este código, si arrstras sobre la imagen con botón derecho se encoge, si lo haces con botón izquierdo, se agranda, pero no redibuja hasta que sueltas el botón:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, pngimage, ExtCtrls, Math, StdCtrls;

type
TForm1 = class(TForm)
Image1: TImage;
procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
public
PosX, PosY: integer;
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
PosX:=X;
PosY:=Y;
end;

procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
Escalar: Real;
begin
Escalar:=sqrt (Power(X-PosX, 2)+Power(Y-PosY, 2));
if Button=mbLeft then begin
Image1.Height:=Image1.Height+Round(Escalar);
Image1.Width:=Image1.Width+Round(Escalar);
end
else begin
Image1.Height:=Image1.Height-Round(Escalar);
Image1.Width:=Image1.Width-Round(Escalar);
end;
end;

end.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar