我有一个列表视图,如果用户双击它,我想将项目的字体颜色更改为 clRed。但是,如果用户双击另一个项目,所有其他项目都应该返回黑色字体颜色,并且新的双击项目更改为 clRed - 依此类推。
我在这里有这段代码:
var
CurrentProfile : String; // Global var that stores the caption of the double clicked item.
procedure TForm1.ListView1DblClick(Sender: TObject);
begin
if ListView1.Selected <> NIL then CurrentProfile := ListView1.Selected.Caption;
end;
procedure TForm1.ListView1CustomDrawItem(
Sender: TCustomListView; Item: TListItem; State: TCustomDrawState;
var DefaultDraw: Boolean);
begin
if item.Caption = CurrentProfile then begin
Sender.Canvas.Font.Color := clRed;
end else begin
Sender.Canvas.Font.Color := clBlack; // if not change it back to black
end;
end;
使用此代码,每个双击的项目都保留在 clRed 中。为什么它没有变回 clBlack?请帮忙。先感谢您。
PS.:我用的是delphi7。