每个表单都有两个带TListview的表单(显示我刚刚添加的数据)。 当我尝试从form1和Listview(form1)中添加数据时,它可以正常显示。但我也想要,如果我从form1添加数据,Listview(form1)和Listview(Form2)会自动添加。
这是我的代码:
procedure TForm1.btnAddClick(Sender: TObject);
var
data1,data2 : TListItem;
m1,m2,m3 : String;
dat : TForm2;
begin
m1 := EMom1.Text;
m2 := EMom2.Text;
m3 := EMom3.Text;
//listview form1
data1 := ListView1.Items.Add;
data1.Caption := m1;
data1.SubItems.Add(m2);
data1.SubItems.Add(m3);
//listview form2
data2 := dat.ListView1.Items.Add; {error on this code}
data2.Caption := m1;
data2.SubItems.Add(m2);
data2.SubItems.Add(m3);
答案 0 :(得分:0)
data2 := dat.ListView1.Items.Add;
变量dat
尚未初始化。我希望编译器警告你这一点。我希望你启用提示和警告。
您需要提供对TForm2
实例的有效引用。我对您的计划知之甚少,无法知道您的参考资料。大概你知道答案。
您还应该提取列表视图项,将代码添加到方法中:
procedure AddListItem(lv: TListView; s1, s2, s3: string);
然后,您可以通过两个不同的列表视图调用此函数两次。
最后,如果您能够切换到使用虚拟列表视图,则不需要两份数据副本。