2016-11-07 100 views
-2

我试着在我的项目中使用firebase,并且我发现了一个关于firebase的例子,她Firebase4Delphi但是他们使用的是FMX而不是VCL, 我怎样才能在VCL项目中使用它而不是FMX?将fmx项目转换为vcl Delphi XE10

主要的问题是在这里,在VCL应用程序库,我找不到TListViewItem

procedure TMainForm.OnNewMessage(AChatMsg: TChatMessage); 
var 
    Item: TListViewItem; 
begin 
    try 
    ListView1.BeginUpdate; 
    try 
     Item := ListView1.Items.Add; 
     Item.Text := AChatMsg.Msg; 
     Item.Detail := AChatMsg.Username; 
    finally 
     ListView1.EndUpdate; 
    end; 

    finally 
    AChatMsg.Free; 
    end; 
end; 
+2

我回滚了你的编辑。收到答案后,您无法改变问题的全部含义。这样的改变使得这些答案无效,浪费了写这些答案的人的时间,并且可能由于他们在那些现在无效的答案中收到的降价而可能对其声誉产生负面影响。如果你现在有不同的问题,写一个新的问题,并在那里问。这个问题是关于'TListViewItem'的问题,下面的答案解决了这个问题。 –

+0

事实上,你似乎也在使用一些第三方单元,我碰巧在Google上找到了这个单元。该单位显然是在阿尔法。你是否认为这个单元可能已经坏了,你应该咨询这个供应商? –

+0

我建议你在尝试继续之前试图理解你在做什么。你目前的做法不会成功。 –

回答

2

这是不可能的FMX项目自动转换为VCL项目。在VCL项目中,ListView的项目来自TListItem类型。试试这个:

procedure TMainForm.OnNewMessage(AChatMsg: TChatMessage); 
var 
    Item: TListItem; 
begin 
    try 
    Item := ListView1.Items.Add; 
    Item.Caption := AChatMsg.Msg; 
    finally 
    AChatMsg.Free; 
    end; 
end; 
+0

我试了一下,但没有在ListView1中显示!你试试看看Firebase4Delphi的例子吗? –

+0

@ junior.programmer你的问题在别处,上面的代码应该工作得很好,假设'OnNewMessage'实际上是调用的,'AChatMsg.Msg'实际上有一个值。你是否已经通过代码验证了这一点? –

+0

@JerryDodge请看看我上面更新的代码,请问..问题在哪里? –