如题?
解决方案 »
- Delphi2010编译ICS7不能通过
- 散分,赢了阿泰1000分
- 在简体XP, ACCESS2000下写的东西,拿到繁体XP, ACCESS2003环境中运行,连不上库?
- adoquery中增加一个新的字段后,如何保存数值?
- 各位想制富的DELPHI同志来看!一个把20万变300万的富翁的成长经历(真实故事!)
- 在做多线程中,发现线程对象Private区的变量值出现相互干扰?为什么?
- delphi的class 中能不能定义一下,在所有实例中都能访问的成员变量?
- 如何学习DELPHI?望各们前辈再给予指点:)
- 如何使用control panel applet 来写控制面版组件?还有,联想电脑系统里是怎么加上自己公司的内容的?
- 如何取得硬盘序列号、CPU型号、硬盘转速等信息!有代码实例最好!
- S:=Copy(S,2,Length(S)); 怎样提高这条语句的效率?
- 两个拨号上网的电脑,如何相互编程通信?
var
LVItem: TListItem;
BDraw: Boolean;
begin
BDraw := True; //False
ListView1CustomDrawItem(ListView1, LVItem, [cdsFocused], BDraw);
end;
LVItem := ListView1.Selected; // 加一句
可以写一个用于重画的函数。unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls;type
TForm1 = class(TForm)
ListView1: TListView;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
procedure CustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.CustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
if Item.Caption = 'Öйú' then
begin
(Sender as TListView).Canvas.Font.Color := clMaroon;
end
else if Item.Caption = 'Ó¢¹ú' then
begin
(Sender as TListView).Canvas.Font.Color := clRed;
end
end;procedure TForm1.Button1Click(Sender: TObject);
var
State: TCustomDrawState; var DefaultDraw: Boolean;
begin
ListView1.OwnerDraw := true;
CustomDrawItem(ListView1.Items.Owner, ListView1.Items.Item[0], State, DefaultDraw);
CustomDrawItem(ListView1.Items.Owner, ListView1.Items.Item[1], State, DefaultDraw);
end;end.
那还能看到效果吗?
所以,重画一般是单独的函数,就像菜单,工具条。
一般为了所有的同类控件都能使用,都会写成函数的。