예기치 않은 TListItem 동작이 나타났습니다. 다음 테스트 코드를 확인하십시오.TListItem.Checked가 Assign() 후 True로 전환됩니다.
var
Item: TListItem;
//...
ListView1.Checkboxes := True;
with ListView1.Items.Add do
begin
Caption := 'old item';
Checked := False;
end;
Item := TListItem.Create(ListView1.Items);
Item.Caption := 'new item';
Item.Checked := False;
ListView1.Items[0].Assign(Item);
Assert(ListView1.Items[0].Caption = 'new item');
Assert(ListView1.Items[0].Checked = False); //WTF
Checked 속성이 어쨌든 True로 전환되므로 어설 션 오류가 발생합니다. 도움말 파일에서이 동작에 대한 설명을 찾지 못했습니다.
이것은 버그 또는 기능입니까?
나는 모든 업데이트와 함께 델파이 7을 사용하고 있습니다.
이것은'Assign()'과는 아무런 관련이 없습니다. 'Assign'앞에 'Assert (Item.Checked가 아님);를 삽입하면 실패 할 것입니다. –