Image的平铺问题(100分)

  • 主题发起人 主题发起人 djw
  • 开始时间 开始时间
D

djw

Unregistered / Unconfirmed
GUEST, unregistred user!
目的:让image1的图像平铺显示(不是拉伸),请看我的苯方法;

//在form上放两个image,

Image1.Align:=alTop;
Image2.AutoSize:=True;

var x,y:integer;
begin
y:=0;
while y<Image1.Height do
begin
X:=0;
while X<Image1.Width do
begin
Image1.canvas.Draw(X,Y,Image2.Picture.Bitmap);
X:=X+Image2.Width;
end;
Y:=Y+Image2.Height;
end;
end;

问题:

1、当form改变大小时,image1的平铺图像大小不随着form改变大小;
2、有没有更好的方法,只用一个image实现图像平铺,
Bitmap:=TBitmap.Create;
Bitmap.LoadFromFile('x.bmp') 方法除外。



 
该死的Html

目的:让image1的图像平铺显示(不是拉伸),请看我的苯方法;

//在form上放两个image,

Image1.Align:=alTop;
Image2.AutoSize:=True;

var x,y:integer;
begin
y:=0;
while y<Image1.Height do
begin
X:=0;
while X<Image1.Width do
begin
Image1.canvas.Draw(X,Y,Image2.Picture.Bitmap);
X:=X+Image2.Width;
end;
Y:=Y+Image2.Height;
end;
end;

问题:

1、当form改变大小时,image1的平铺图像大小不随着form改变大小;
2、有没有更好的方法,只用一个image实现图像平铺,
Bitmap:=TBitmap.Create;
Bitmap.LoadFromFile('x.bmp') 方法除外。



 
他奶奶的,这是怎么回事

目的:让image1的图像平铺显示(不是拉伸),请看我的苯方法;

//在form上放两个image,

Image1.Align:=alTop;
Image2.AutoSize:=True;

var x,y:integer;
begin
y:=0;
while y<Image1.Height do
begin
X:=0;
while X<Image1.Width do
begin
Image1.canvas.Draw(X,Y,Image2.Picture.Bitmap);
X:=X+Image2.Width;
end;
Y:=Y+Image2.Height;
end;
end;

问题:

1、当form改变大小时,image1的平铺图像大小不随着form改变大小;
2、有没有更好的方法,只用一个image实现图像平铺,
Bitmap:=TBitmap.Create;
Bitmap.LoadFromFile('x.bmp') 方法除外。



 
再来一次,不行我上吊

目的:让image1的图像平铺显示(不是拉伸),请看我的苯方法;
<p>//在form上放两个image,</p>
<p>Image1.Align:=alTop;<br>
Image2.AutoSize:=True;</p>
<br>
var x,y:integer;<br>
begin<br>
y:=0;<br>
while y&amp;lt;Image1.Height do<br>
begin<br>
X:=0;<br>
while X&amp;lt;Image1.Width do<br>
begin<br>
Image1.canvas.Draw(X,Y,Image2.Picture.Bitmap);<br>
X:=X+Image2.Width;<br>
end;<br>
Y:=Y+Image2.Height;<br>
end;<br>
end;</p>
<b><font color="#FF0033">问题:</font></b></p>
1、当form改变大小时,image1的平铺图像大小不随着form改变大小;<br>
<br>
2、有没有更好的方法,只用一个image实现图像平铺,<br>
&amp;nbsp;&amp;nbsp;&amp;nbsp;Bitmap:=TBitmap.Create;<br>
&amp;nbsp;&amp;nbsp;&amp;nbsp;Bitmap.LoadFromFile('x.bmp') 方法除外。
 
在Form的OnPaint事件里——
procedure TForm1.FormPaint(Sender: TObject);
begin
Canvas.Brush.Bitmap := Image1.Picture.Bitmap;
Canvas.FillRect(Canvas.ClipRect);
Canvas.Brush.Bitmap := nil;
end;
 
不好意思,没有正确领会精神:)
我再想想……
 
dq is right
不过应该放在form的onresize里啊。
 
在ExtraPack中的Image有这个属性你可以参考参考
 
呵呵,试试下面的代码,肯定可以成功的。
interface
uses jpeg;
var jpgback:tjpegimage;
implementation
procedure Tmainform.FormCreate(Sender: TObject);
begin
jpgback:=tjpegimage.create;
jpgback.loadfromfile('e:/jpg/s016.jpg');
end;
procedure Tmainform.FormPaint(Sender: TObject);
var
x,y,w,h:longint;
begin
w:=jpgback.width;
h:=jpgback.height;
y:=0;
while y<height do
begin
x:=0;
while x<width do
begin
canvas.draw(x,y,jpgback);
inc(x,w);
end;
inc(y,h);
end;
end;
 
djw:如果你还要继续讨论请定期提前你的帖子,如果不想继续讨论请结束帖子。
 
一个简单的方法是:
去书店,看看<<Delphi5 开发人员指南>>中的关于MDI窗体部分!
 
多人接受答案了。
 

Similar threads

I
回复
0
查看
709
import
I
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
543
import
I
后退
顶部