2016-11-07 95 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請看看我上面更新的代碼,請問..問題在哪裏? –