数据传递问题
public
{ Public declarations }
GPRSList: TListView;
procedure TfrmMain.AddUserInListView(AClient: TUser);
var
Item: TListItem;
begin
Item := frmMain.GPRSList.Items.Add;
Item.Caption := AClient.UserName;
AClient.ListItem := Item;
Item.SubItems.Add(Format('%s[%d]', [AClient.IP, AClient.Port]));
Item.SubItems.Add('N/A');
//Item.Checked := AClient.Selected;
if Assigned(frmGPRS) then frmGPRS.ListView1:=GPRSList;
end;
我有这么一段程序
当我执行到第一行 Item:=frmMain.GPRSList.Items.Add 就出错了
我是想建一个临时的TlistView,方便我在其他窗口也能调用这个数据,所以就定义了一个,但是我不希望在窗口上把这个tlistView创建显示出来,大家看看我该怎么做,才能达到我的目的,谢谢
[解决办法]
GPRSList虽然声明了,但没有实现,因此你需要如下改动
var
Item: TListItem;
begin
GPRSList := TListView.create(nil);
try
Item := frmMain.GPRSList.Items.Add;
Item.Caption := AClient.UserName;
AClient.ListItem := Item;
Item.SubItems.Add(Format('%s[%d]', [AClient.IP, AClient.Port]));
Item.SubItems.Add('N/A');
//Item.Checked := AClient.Selected;
if Assigned(frmGPRS) then frmGPRS.ListView1:=GPRSList; //这里需要assign,不能赋指针
finally
GPRSList.free;
end;
end;