function CreateImg: TImage;Rotated90(CreateImg);———————————————————————————————————— 宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。 ————————————————————————————————————
按照你所说的进行了改动,为什么还是在运行的时候出现异常呢? function TForm1.CreateImg:TImage; var Im:TIMage; begin Screen.cursor:=crDefault; im:=TImage.Create(self); im.Parent:=sbxMain; im.AutoSize:=true; im.Stretch:=true; im.Picture.LoadFromFile('H:\Program Files\Borland\Delphi6\Projects\画图new\画图\R.Bmp'); im.Left:=200; im.Top:=200; imheight:=im.Height; imwidth:=im.Width; im.Visible:=true; im.OnMouseDown:=form1.ImgMouseDown; im.OnMouseMove:=form1.ImgMouseMove; im.OnMouseUp:=form1.ImgMouseUp; im.Transparent:=true; end; procedure TForm1.Rotated90(AImage:TImage); var imgheight,imgwidth:integer; begin imgwidth:=AImage.Width; imgheight:=AImage.height; AImage.Picture.Bitmap.Height:=imgwidth; AImage.Picture.Bitmap.Width:=imgheight; AImage.Picture.LoadFromFile('H:\Program Files\Borland\Delphi6\Projects\画图new\画图\rr.bmp'); end;procedure TForm1.sbRoClick(Sender: TObject); begin Rotated90(CreateImg); end;
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
————————————————————————————————————
function TForm1.CreateImg:TImage;
var Im:TIMage;
begin
Screen.cursor:=crDefault;
im:=TImage.Create(self);
im.Parent:=sbxMain;
im.AutoSize:=true;
im.Stretch:=true;
im.Picture.LoadFromFile('H:\Program Files\Borland\Delphi6\Projects\画图new\画图\R.Bmp');
im.Left:=200;
im.Top:=200;
imheight:=im.Height;
imwidth:=im.Width;
im.Visible:=true;
im.OnMouseDown:=form1.ImgMouseDown;
im.OnMouseMove:=form1.ImgMouseMove;
im.OnMouseUp:=form1.ImgMouseUp;
im.Transparent:=true;
end;
procedure TForm1.Rotated90(AImage:TImage);
var imgheight,imgwidth:integer;
begin
imgwidth:=AImage.Width;
imgheight:=AImage.height;
AImage.Picture.Bitmap.Height:=imgwidth;
AImage.Picture.Bitmap.Width:=imgheight;
AImage.Picture.LoadFromFile('H:\Program Files\Borland\Delphi6\Projects\画图new\画图\rr.bmp');
end;procedure TForm1.sbRoClick(Sender: TObject);
begin
Rotated90(CreateImg);
end;
取掉im局部变量,改为Result := TImage.Create(Self);
然后,在需要调用Rotated90的Procedure中定义局部变量Img:
var Img: TImage;
...
Img := CreateImg;
try
Rotated90(Img);
finally
FreeAndNil(Img);
end;
搞定...