有一个image,picture调入jpg或bmp文件,哪个不定.而且文件的大小不定,为了让图片全部显示设置image1.Stretch:=true;然后在image1上放一个label,要求是在image的大小改变时,label相对图中的两条线的位置不发生变化.可以看效果图.上边的是开始的时候label的位置.下面是在image的打下改变后不应该的位置.第二副图,因为form的大小改变,所以label的位置改变了,想实现的方式是,form的大小改变时,label向对那两条线的位置不发生变化,应该和第一副图一样.我看了Stretch的原理,不过还是没有解决.请高手不吝赐教!!
解决方案 »
- delphi XE中如何单步调试?设置的断点无效。
- 关于delphi 与sql手动连接的ini文件的小小疑难问题
- 我要怎么获取用鼠标左键选定的memo里面的长字符串?
- 关于窗体刷新问题,急!
- 用TDBchart出现Unit Series was compiled with a different version of Chart.TChartBrush?
- c/s 编程的问题
- 关于Quickreport只能打印出第一条记录的问题.
- 请教:急!
- 在dbgrideh中能否设计出复杂表头(多行,带横竖线的),怎么设呢?
- 急急急 !!!!怎么在delphi中用UPDATE 语句将表里的某个字段的值更新为空呢?
- 怎样在Adotable打开数据表时显示一个进度
- 高分求解:delphi如何使用C写的sdk???
第二张图片的连接地址http://classpic.chinaren.com/wrapper.html?url=http://classpic16.chinaren.com/album/pic/460/257/2815032345916257460/119086034719258.jpg
procedure ShowPicture;
Var
tpStream: TmemoryStream;
begin
//判断文件的扩展名是jpg的还是bmp的 可以根据打开的文件然后做字符判断
if IsJPG then
begin
tpStream:=TmemoryStream.Create;
try
tpStream.LoadFromFile(PicturePath+PictureName);
image.Picture.Graphic:=TjpegImage.Create;
image.Picture.Graphic.LoadFromStream(tpstream);
finally
tpstream.Free
end;
end else
image.Picture.LoadFromFile(PicturePath+PictureName);
end;
2,为了保持与那两条线平衡可以在窗体的OnCanResize事件里写相应代码
procedure TForm1.FormCanResize(Sender: TObject; var NewWidth,
NewHeight: Integer; var Resize: Boolean);
begin
//采用窗体与LABEL比例的算法
//窗体原先的宽度为 Self.Width; 窗体改变后的大小为 NewWidth ;
//具体的算法应该是什么样的 根据你实际的情况
end;