リストビューがあり、ユーザーがアイテムをダブルクリックした場合にアイテムのフォントの色を 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 を使用しています。