有一panel,在其上放一Image,怎么样才能让图像在panel中平铺满整个panel区域?
解决方案 »
- 窗口过程的参数
- 用UDP实现在网络上传输文件的问题。
- DLL问题.为什么不能返回STRING值啊?
- 请教了,就是CTRLGRID控件的keydown,和dokey方法?问问它们的用法。
- 为什么我用XMLDocument生成的xml文件只有一行,没有换行?
- 请 larruping(且夫水之积也不厚,则其负大舟也无力) 帮帮忙!!!
- 聘delphi+sqlServer , 实际工作经验一年以上。学历无要求。年龄无要求。
- 大家支持一下borland
- 在delphi备份数据库时,打开者的数据库是不能备份的吗?
- 为什么我在Form Active事件中加入的Close方法并不能关闭当前窗口?
- 一个奇怪的问题
- 关于如何使用CHART横轴问题,我的横轴为时间轴H:MM:SS 如何使用,谢谢,
stretch:= true;
图像即可平铺整个pannel区域,窗体等也一样 ^_^
》 stretch:= true;
》图像即可平铺整个pannel区域,窗体等也一样 ^_^
icon格式的图像不行。Bmp,Jpeg的可以。
========================= // Draw image
if(FDrawStyle == dsCenter) // Center Draw
{
int FImageWidth = FBkgndImage->Width;
int FImageHeight = FBkgndImage->Height; this->Canvas->Draw((this->Width - 2*Offset - FImageWidth)/2 + Offset,
(this->Height- 2*Offset - FImageHeight)/2 + Offset,FBkgndImage->Graphic);
}
else if(FDrawStyle == dsTile) // Tile draw
{
int FImageWidth = FBkgndImage->Width;
int FImageHeight = FBkgndImage->Height; int j = this->Width/FImageWidth + 1;
int n = this->Height/FImageHeight + 1; for(int i = 0; i < j; i++)
for(int m = 0; m < n; m++)
this->Canvas->Draw(Offset + i*FImageWidth,Offset + m*FImageHeight,FBkgndImage->Graphic);
}
else // Stretch draw
{
this->Canvas->StretchDraw(TRect(Offset,Offset,this->Width-Offset,this->Height-Offset),FBkgndImage->Graphic);
}
===================实际上TControlBar的源代码就有这段代码,而且是Delphi的,你不仔细查而已:)
放一个button,代码如下
procedure TForm1.Button1Click(Sender: TObject);
var
x,y,w,h:longint;
bitmap:tbitmap;
begin
bitmap:=tbitmap.Create;
try
bitmap.LoadFromFile('e:\bitmap1.bmp');//这是你的bmp文件
with bitmap do
begin
w:=width;
h:=height;
end;
y:=0;
while y<height do
begin
x:=0;
while x<width do
begin
image1.Canvas.Draw(x,y,bitmap);
inc(x,w);
end;
inc(y,h);
end;
finally
bitmap.Free;
end;
end;
国庆将至,终于可以修修了,爽阿.^_^.