社区
Delphi
帖子详情
如何在TreeView,ListView中添加背景图片,好象有点难度?
torrentwang
2001-05-08 10:28:00
...全文
224
19
打赏
收藏
如何在TreeView,ListView中添加背景图片,好象有点难度?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
19 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
gdx
2001-06-03
打赏
举报
回复
torrentwang
2001-05-28
打赏
举报
回复
我要加分如何加分,比较的麻烦,不能让各位大峡白忙一场
zy61
2001-05-10
打赏
举报
回复
但是上面的ITEM会盖掉一部分的背影,如果想让ITEM透明就要定义事件OnCustomDraw,
另外如果想做一个好一点的组件,以后也好用的话可以从TCustomListView继承,而 不是从TListView;
zy61
2001-05-10
打赏
举报
回复
如果TListView 没有Paint 的话Ary的方法可能不行,应该是建一个
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls,jpeg;
type
TListViewEx = class(TListView)
private
FBkgnd : TJPEGImage;
procedure WMEraseBkgnd(var Message: TWmEraseBkgnd); message WM_ERASEBKGND;
public
property BkGnd : TJPEGImage read FBkgnd write FBKgnd;
end;
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
FList : TListViewEx;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
var
jpg : TJpegImage;
begin
jpg:= TJpegImage.Create;
jpg.LoadFromFile ('c:\My Documents\My pictures\god.jpg');
FList := TListViewEx.Create(self);
FList.Parent := self;
FList.BkGnd := jpg;
FList.Items.Add;
FList.Items[0].Caption := 'askjdfsajfhsa';
FList.Items.Add;
FList.Items[1].Caption := 'askjdfsajfhsa';
FList.Items.Add;
FList.Items[2].Caption := 'askjdfsajfhsa';
FList.Items.Add;
FList.Items[3].Caption := 'askjdfsajfhsa';
end;
{ TListViewEx }
procedure TListViewEx.WMEraseBkgnd(var Message: TWmEraseBkgnd);
begin
if not Assigned(FBKGnd) then
inherited
else begin
Canvas.Lock;
try
Canvas.Handle := Message.DC;
Canvas.Draw(0,0, Bkgnd);
Canvas.Handle := 0;
finally
Canvas.Unlock;
end;
end;
end;
end.
torrentwang
2001-05-10
打赏
举报
回复
我如何加分呀
torrentwang
2001-05-09
打赏
举报
回复
可是,你的那句
Protected
procedure Paint;override;
end;
编译时报[Error] ListView1.pas(13): Method 'Paint' not found in base class
我改成了 virtual,编译通过了,安装好
但是控件如何用呀
分数我将再加
manboo
2001-05-09
打赏
举报
回复
高实在是高啊!
格兰特杨
2001-05-08
打赏
举报
回复
非常好阿菠萝,我都想给你分拉...:)
Apollo47
2001-05-08
打赏
举报
回复
uses Jpeg;
procedure TForm1.Button1Click(Sender: TObject);
var
jpg:TJPEGImage;
begin
jpg:= TJpegImage.Create;
jpg.LoadFromFile('F:\My Documents\Pictures\0091.jpg');
Treeview1.Canvas.Draw(0,0,jpg);
Listview1.Canvas.Draw(0,0,jpg);
jpg.Free;
end;
OneStandNight
2001-05-08
打赏
举报
回复
这个挺容易的,想要的话就MAIL我吧...
xycleo
2001-05-08
打赏
举报
回复
应该也是用canvas自己画吧!!
Canvas->Draw(50,50,pBitmap);
lichp
2001-05-08
打赏
举报
回复
最好下载一些界面类控件,支持背景图片的不少哟
码狂
2001-05-08
打赏
举报
回复
刚才写错了,重发一次。
从TListView继承一个自已的控件,重载它的Paint方法。
type
TExListView = class(TListView)
protected
procedure Paint; override;
end;
......
procedure TExListView.Paint;
var
jpg:TJPEGImage;
begin
// Draw you background here
jpg:= TJpegImage.Create;
try
jpg.LoadFromFile('F:\My Documents\Pictures\0091.jpg');
TExListView(Self).Canvas.Draw(0,0,jpg);
// 老外一般这样写,我常写成 Self.Canvas.Draw(0,0,jpg);
finally
jpg.Free;
inherited; // inherite TListViewDraw;
end;
end;
省略了控件的其它部份。如果对控件不熟,建议你通过向导创建新控件并注册。实际上很简单的。
码狂
2001-05-08
打赏
举报
回复
从TListView继承一个自已的控件,重载它的Paint方法。
type
TExListView = class(TListView)
protected
procedure Paint; override;
end;
......
procedure TExListView.Paint;
var
jpg:TJPEGImage;
begin
// Draw you background here
jpg:= TJpegImage.Create;
try
jpg.LoadFromFile('F:\My Documents\Pictures\0091.jpg');
Treeview1.Canvas.Draw(0,0,jpg);
Listview1.Canvas.Draw(0,0,jpg);
finally
jpg.Free;
inherited; // inherite TListViewDraw;
end;
end;
省略了控件的其它部份。如果对控件不熟,建议你通过向导创建新控件并注册。实际上很简单的。
wzs
2001-05-08
打赏
举报
回复
只需在listview的重画事件用Apollo47(阿波罗)方法
wzs
2001-05-08
打赏
举报
回复
只需在listview的重画事件用Apollo47(阿波罗)方法
BaldZhang
2001-05-08
打赏
举报
回复
这个么,我想可能要自己再去写一遍这两个控件,重载它们的WM_ERASEBGGND消息处理方法,
把绘制底图的代码放在这里,哪位可以试试,应该有用的,我没时间试了,呵呵
manboo
2001-05-08
打赏
举报
回复
我想想!
torrentwang
2001-05-08
打赏
举报
回复
可是,当我点击TREEVIEW时,图片变的很破碎,我要得是那种,一直在底部而不会被改变,那位能解决这个问题呢
我在CSDN参与的3000个帖子
今日偶然翻到,感慨万千 1:申述:版主,是否扣了我的专家分? 2:100分急求,随机输出十个小写字母,但是,要求这十个字母不相同 3:求Sn=a+aa+aaa+…+aaa…a(n个a)之值 4:数组题 望高手帮忙! 5:呵呵,来推荐一下我的网站,本站提供大量当今流行的免费的音乐和免费电影,常用软件、游戏、精美图库下载,希望对网友有帮助!顺便散分! 6:VBA请教怎
学习笔记
相换工作的朋友可以试着做一下:1. CLR、CTS、CLS 分别是什么意思? 共公语言运行库,通用类型系统,公共语言规范2. 什么是基元类型? 由编译器直接支持的数据类型称为基元类型.3. 值类型和引用类型的区别是什么?为什么要设计值类型?值类型会被GC回收吗?值类型是否能在托管堆分配? 4. Equals、==、ReferenceEquals 如何区别使用? 5. 什么是虚方法?如何理解多态...
学习笔记 asp.net 08/12/13
相换工作的朋友可以试着做一下:1. CLR、CTS、CLS 分别是什么意思? 共公语言运行库,通用类型系统,公共语言规范2. 什么是基元类型? 由编译器直接支持的数据类型称为基元类型.3. 值类型和引用类型的区别是什么?为什么要设计值类型?值类型会被GC回收吗?值类型是否能在托管堆分配? 4. Equals、==、ReferenceEquals 如何区别使用? 5. 什么是虚方法?如何理解多态?
换工作试题
相换工作的朋友可以试着做一下:1. CLR、CTS、CLS 分别是什么意思? 共公语言运行库,通用类型系统,公共语言规范2. 什么是基元类型? 由编译器直接支持的数据类型称为基元类型.3. 值类型和引用类型的区别是什么?为什么要设计值类型?值类型会被GC回收吗?值类型是否能在托管堆分配? 4. Equals、==、ReferenceEquals 如何区别使用? 5. 什么是虚方法?如何理解多态
WPF开发教程
------WPF开发教程 目录 WPF基础入门.... 3 1. WPF基础之体系结构... 3 2. WPF基础之XAML. 9 3. WPF基础之基元素... 23 4. WPF基础之属性系统... 26 5. WPF基础之路由事件... 33 6. WPF基础之布局系统... 46 7. WPF基础之样式设置和模板化... ...
Delphi
5,931
社区成员
262,938
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章