我本意想让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.
---------------------------------
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.
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;
我的image的大小已经变大了啊~~~:(ghostmirror(BUPT) ( )
你的我等会试试。。如果行就好了。。:))))
image.stretch:=true;
可是楼上的方法只是拉伸我想要得是象设置桌面时候的那种平铺效果
现在的解决方法是把image初始的很大。。
然后panel变大小就没问题了。。
否则
panel变大时,image初始化时没覆盖的部分就只有panel了。。:(