unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls;type
  TForm1 = class(TForm)
    Button1: TButton;
    Image_MusicPlayCur: TImage;
    Image_MusicPlayDemo: TImage;
    Image_MusicPlayMax: TImage;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
 var  dest, src : trect;
begin
  src  := rect(0,0,6,29);
  dest := rect(0,0,Image_MusicPlayMax.Width,Image_MusicPlayMax.Height);
  Image_MusicPlayMax.canvas.copyrect(dest, Image_MusicPlayDemo.canvas, src);
end;procedure TForm1.Button2Click(Sender: TObject);
 var  dest, src : trect;
begin
  src  := rect(0,0,25,7);
  dest := rect(0,6,25,13);
  Image_MusicPlayMax.canvas.copyrect(dest, Image_MusicPlayCur.canvas, src);
end;end新建立一个框架,放里两个按钮和两个图片,用Image_MusicPlayMax.canvas.copyrect(dest, Image_MusicPlayCur.canvas, src);这个方法图个图,发现没有问题,当改变窗体尺寸,在点按钮给图片重新画图时,图片随窗体尺寸等比例缩放,没有按指定的宽度和高度正常画图
按常理说,给图片指定定和宽,不会出现这个问题了,谁遇到过?能不能帮我解决一下?

解决方案 »

  1.   

    handle window size change,resize the image control and do set auto size.
      

  2.   

    resize the image control with 指定的宽度和高度正常画图.
      

  3.   

    src  := rect(0,0,25,7);//这里指定了图片的宽度了
    dest := rect(0,6,25,13);//这里也[定好了图看的位置了
    当我点按钮重新指定一下,也是缩收状态呀?怎么回事
      

  4.   

    resize the image control 
    刚才说的这句话要怎么实现呀?
      

  5.   

    首先,Image_MusicPlayMax的Stretch应该设成false
    然后用我这段代码
    procedure TForm1.Button1Click(Sender: TObject);
    var
            dest, src : trect;
            mBitMap : TBitMap;
    begin
            mBitMap := TBitMap.Create;
            mBitMap.Width := Image_MusicPlayMax.Width;
            mBitMap.Height := Image_MusicPlayMax.Height;        src  := rect(0,0,6,29);
            dest := rect(0,0,mBitMap.Width,mBitMap.Height);
            mBitMap.canvas.copyrect(dest, Image_MusicPlayDemo.canvas, src);        src  := rect(0,0,25,7);
            dest := rect(0,3,25,10);
            mBitMap.canvas.CopyRect(dest, Image_MusicPlayCur.canvas, src);        Image_MusicPlayMax.Picture.Assign(mBitMap);        mBitMap.Destroy;
    end;procedure TForm1.FormResize(Sender: TObject);
    begin
            Button1Click(nil);
    end;
      

  6.   

    设置Image1的属性Align,随窗口的大小改变而改变。有四个属性,你自己调一下。