procedure TForm1.FormCreate(Sender: TObject);
var
  MyImage : TImage;
  MyRect : TRect;
begin
  MyImage:=Timage.Create(Nil);
  MyImage.AutoSize:=True;
  MyImage.Picture.LoadFromFile('C:/MyForm.bmp');  MyRect.Left := 0;
  MyRect.Top := 0;
  MyRect.Right := ClientWidth;
  MyRect.Bottom := ClientHeight;  Self.Canvas.StretchDraw(MyRect,MyImage.Picture.Graphic);
  Self.Canvas.Refresh;
end;=================
上述代码为何没有效果?再问一个:MSN对话框中的背景图形是靠算法得出的么?如果我有一套图形算法,如何让自己的Form界面进行显示?

解决方案 »

  1.   

    不明白什么意思?是这样吗?就是动态创建?procedure TForm1.FormCreate(Sender: TObject);
    var
      img: TImage;
    begin
      img:= TImage.Create(self);
      img.Picture.LoadFromFile('C:/MyForm.bmp');
      img.Parent:= self;
      img.Stretch:= true;
      img.Align:= alclient;
    end;
      

  2.   

    我的意思不是说在Form上加载一个TImage对象,而是在Form的Canvas中让它自行的加载一个图形,是位图也好,图像算法也好,只要是能在Form上直接加载,而不需要其他对象的那种。主要的效果就是参照MSN Messenger的对话框,可以随意更换背景图形、调节图案颜色
      

  3.   

    如何做到组件的半透明,如果我有一个TDBGrid对象,怎么让它半透明?,hoho,谁帮我解?
      

  4.   

    咨询一下,TForm.Canvas能不能显示图形?????
      

  5.   

    要想在Canvas中显示图形, 需要在OnPaint中画, 不然你的背景在窗口缩放或更新的时候无法保存你临时画上去的图形
      

  6.   

    同意楼上,你在create里画完以后,当form自己重画时会将你原来画的冲掉
      

  7.   

    呵呵,谢谢各位的指点。---------------------------------最后咨询问题,如何在Form的画布中让颜色渐变,例如顶端是黑色的,底端是白色的,中间是色彩渐进
    ,这种效果是如何得到的?
      

  8.   

    //是要這個效果吧??procedure TForm1.FormCreate(Sender: TObject);
    var
      Bmp: TBitmap;
    begin
      Bmp :=TBitmap.Create;
      Bmp.LoadFromFile('C:\logo.bmp');
      Form1.Brush.Bitmap :=Bmp;
    end;
      

  9.   

    呵呵,谢谢,关于图片可以直接在OnPaint事件中实现