双击image放大:
procedure Tform1.Image1DblClick(Sender: TObject);
begin
 image1.Stretch:=true;
 image1.Align:=alClient;
end;
那怎么样才能还原图片为原来的大小呢?

解决方案 »

  1.   

    procedure TForm1.Image1DblClick(Sender: TObject);
    var
      i:Integer;
    begin
      if Image1.Hint='' then//放大
      begin
        Image1.Hint:=IntToStr(Image1.Left)+' '+IntToStr(Image1.Top);
      Image1.Stretch:=True;
      Image1.Align:=alClient;
      end
      else begin//还原
        Image1.Align:=alNone;
        Image1.AutoSize:=True;    i:=Pos(' ',Image1.Hint);
        Image1.Left:=StrToInt(Copy(Image1.Hint,1,i-1));
        Image1.Top:=StrtoInt(Copy(Image1.Hint,i+1,Length(Image1.Hint)));    Image1.Hint:='';
      end;
    end;
      

  2.   

    with viewform do begin
        Image1.Picture := pic1_img.Picture;
        HorzScrollBar.Range := pic1_img.Picture.Width;
        VertScrollBar.Range := pic1_img.Picture.Height;
        Show;
      end;
    这是我用另一个窗体上的一个IMAGE来显示图片的实际大小。
      

  3.   

    我用了‘黑里透红’的方法,还原后top和left的位置和原先图片的位置是一样的,但width和height与原来的图片大小不一样,大概分别放大了一倍和三倍,请问怎么样才能恢复原来的图片大小呢?