TListItems 형을 인자로 전달하려고 합니다.
컴파일시에는 에러가 없는데 실제 실행시에는 에러가 나는군요.
TxParameter = class
Items : TListItems;
end;
이렇게 하나 생성해 두고 인자 전달을 할 곳에서 아래 형태 처럼 했는데 에러가 계속 나는군요.
xParameter := TxParameter.Create;
xParameter.Items := TListItems.Create(nil);
with xParameter.Items.Add do
begin
Caption := 'wef';
end;
TListItems 은 TCustomListView 를 응용하는 것이라서 TListItems.Create(nil);
처럼 nil 을 사용해서 인자 전달에 사용하면 안되는것인지 모르겠군요.
거의 하루를 보내고 있는데 별 짓다하면서 바꿔 봐도 안되는군요.
조언좀 부탁드립니다.
그럼....
function TListItems.AddItem(Item: TListItem; Index: Integer): TListItem;
begin
if Item = nil then
Result := Owner.CreateListItem
^^^^^^^^^^^^^^^^^^^^
else
Result := Item;
if Index < 0 then
Index := Count;
ListView_InsertItem(Handle, CreateItem(Index, Result));
end;
<!--CodeE-->
Add를 따라가다보면 AddItem으로 건너가게 됩니다.
밑줄 그은 부분에서 문제가 됩니다.
Owner를 nil로 생성하셨기 때문에 Owner.CreateListItem이 익셉션을 발생시킵니다.