问题是设计期导入图片时出错,错误信息:Access violation of adress007a6d9f in module 'vcl70.bpl'.Read of Adress 00001a1b
但是如果动态创建,就没有问题。
constructor TBtn9.Create(AOwner: TComponent); //创建,设置各项属性
var
map:TBitmap;
begin
inherited;
Fpic :=TBitmap.Create;
ControlStyle :=ControlStyle+[csOpaque];
Cursor :=crHandPoint;
Height :=30;
width :=60;
FAlignment :=tjLeft;
FPicTop :=1;
FPicLeft :=1;
end;
procedure TBtn9.SetPic(const Value: TBitmap);//取图片,相当于glyph只是换了个位置
begin
if(FPic<>nil)then FPic.Destroy;
FPic:=Value;
Invalidate();
end;procedure TBtn9.Paint;
var
TextRect1,BmpRect:TRect;
Bmp1:TBitmap;
begin
inherited;
if(FPic<>nil)then
Canvas.Draw(FPicLeft,FPicTop,FPic);//画图片
TextRect1:=Rect(FPic.Width+FTextLeft,FTextTop,self.ClientWidth-FTextLeft,(self.ClientHeight div 2)-FTextTop);
DrawText(Canvas.Handle,PChar(FText),length(FText),TextRect1,Flags[FAlignment]);//画text1
TextRect1:=Rect(FPic.Width+FTextLeft,(self.ClientHeight div 2)+FTextTop,self.ClientWidth-FTextLeft,self.ClientHeight-FTextTop);
DrawText(Canvas.Handle,PChar(FText1),length(FText1),TextRect1,Flags[FAlignment]);//画text2
我需要的大概就是:
---------------
| | caption:如CSDN |
| 图片 |------------------
| | text:如连接成功 |
----------------------------
这样的效果
但是如果动态创建,就没有问题。
constructor TBtn9.Create(AOwner: TComponent); //创建,设置各项属性
var
map:TBitmap;
begin
inherited;
Fpic :=TBitmap.Create;
ControlStyle :=ControlStyle+[csOpaque];
Cursor :=crHandPoint;
Height :=30;
width :=60;
FAlignment :=tjLeft;
FPicTop :=1;
FPicLeft :=1;
end;
procedure TBtn9.SetPic(const Value: TBitmap);//取图片,相当于glyph只是换了个位置
begin
if(FPic<>nil)then FPic.Destroy;
FPic:=Value;
Invalidate();
end;procedure TBtn9.Paint;
var
TextRect1,BmpRect:TRect;
Bmp1:TBitmap;
begin
inherited;
if(FPic<>nil)then
Canvas.Draw(FPicLeft,FPicTop,FPic);//画图片
TextRect1:=Rect(FPic.Width+FTextLeft,FTextTop,self.ClientWidth-FTextLeft,(self.ClientHeight div 2)-FTextTop);
DrawText(Canvas.Handle,PChar(FText),length(FText),TextRect1,Flags[FAlignment]);//画text1
TextRect1:=Rect(FPic.Width+FTextLeft,(self.ClientHeight div 2)+FTextTop,self.ClientWidth-FTextLeft,self.ClientHeight-FTextTop);
DrawText(Canvas.Handle,PChar(FText1),length(FText1),TextRect1,Flags[FAlignment]);//画text2
我需要的大概就是:
---------------
| | caption:如CSDN |
| 图片 |------------------
| | text:如连接成功 |
----------------------------
这样的效果
解决方案 »
- form1.width 和form1.clientwidth 的区别
- 简单的问题:局部对象变量存入 TList 的问题!
- 用Delphi8.Net开发ASP.net程序,连接access数据库不成功
- 如何在delphi中执行table.sql文件?
- 专家求助,ocx发布!
- 需要自己写一个单机版的类似于数据库的东东,那位高人能够指点一下。
- 100求一个在ACCESS中存入和读出JPG图片的DEMO[D6源码]
- 大哥们,谁教教我如何写进系统的开始项目啊?
- 谁能帮我写段读其它进程中SysTreeView32窗体的内容,我把所有的分(2000多吧)全给他。
- MEMO控件到底能容纳多少行及多少字符数据?
- DELPHI制作动态视频采集软件,可行吗?
- 请问怎样把桌面上正在播放的媒体视频采集到自己程序上呢?
procedure TBtn9.SetPic(const Value: TBitmap);//
FPic.Assign(Value);
Invalidate();