我本意想让button在点击后使得image和panel同时变大,可是结果却。---------------------------------
---------------------------------
unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, ImgList;type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Image1: TImage;
    Button1: TButton;
    ImageListBlock: TImageList;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var tempbit:Tbitmap;
I,J:integer;
Row,Col:integer;
begin
  Row:=20;
  Col:=10;
  panel1.Height:=Row*16;
  Image1.Height:=Row*16;
  panel1.Width:=Col*16;
  Image1.Width:=Col*16;
  tempbit:= Tbitmap.Create;
  Form1.ImageListBlock.GetBitmap(0,tempbit);
  for I := 0 to Row - 1 do
  begin
    for J := 0 to Col - 1 do
    begin
      Form1.Image1.Canvas.CopyRect(Rect(J*16,I*16,(J+1)*16, (I+1)*16),tempbit.Canvas,Rect(0, 0, 16, 16));
    end;
  end;
  tempbit.Free;
end;procedure TForm1.FormCreate(Sender: TObject);
var tempbit:Tbitmap;
I,J:integer;
Row,Col:integer;
begin
  Row:=10;
  Col:=10;
  panel1.Height:=Row*16;
  Image1.Height:=Row*16;
  panel1.Width:=Col*16;
  Image1.Width:=Col*16;
  tempbit:= Tbitmap.Create;
  Form1.ImageListBlock.GetBitmap(0,tempbit);
  for I := 0 to Row - 1 do
  begin
    for J := 0 to Col - 1 do
    begin
      Form1.Image1.Canvas.CopyRect(Rect(J*16,I*16,(J+1)*16, (I+1)*16),tempbit.Canvas,Rect(0, 0, 16, 16));
    end;
  end;
  tempbit.Free;
end;end.

解决方案 »

  1.   

    你把Image的 Align设置为alclient
      

  2.   

    给你改好了,whhh,分分`~~我要变星星咯~procedure TForm1.Button1Click(Sender: TObject);
    var
      tempbit:Tbitmap;
      I,J:integer;
      Row,Col:integer;
    begin
      Row:=20;
      Col:=20;
      panel1.Height:=Row*16;
      Image1.Height:=Row*16;
      panel1.Width:=Col*16;
      Image1.Width:=Col*16;
      image1.Free;
      image1:=TImage.Create(panel1);
      image1.Align:=alclient;
      image1.Parent:=panel1;
      tempbit:= Tbitmap.Create;
      Form1.ImageListBlock.GetBitmap(0,tempbit);
      for I := 0 to Row - 1 do
      begin
        for J := 0 to Col - 1 do
        begin
          Form1.Image1.Canvas.CopyRect(Rect(J*16,I*16,(J+1)*16, (I+1)*16),tempbit.Canvas,Rect(0, 0, 16, 16));
        end;
      end;
      tempbit.Free;
    end;
      

  3.   

    我是做一个可以变大小的窗口。在变大的时候用图片填充,可是变大的时候就一直只有panel的界面。。而image看不到。。
    我的image的大小已经变大了啊~~~:(ghostmirror(BUPT) ( )
    你的我等会试试。。如果行就好了。。:)))) 
      

  4.   

    image.align:=client;
    image.stretch:=true;
      

  5.   

    谢谢楼上各位的回复
    可是楼上的方法只是拉伸我想要得是象设置桌面时候的那种平铺效果
    现在的解决方法是把image初始的很大。。
    然后panel变大小就没问题了。。
    否则
    panel变大时,image初始化时没覆盖的部分就只有panel了。。:(
      

  6.   

    ghostmirror(BUPT) 的方法可以谢谢了。。:)