1. 程式人生 > >c++ Builder TMemo控制元件自動滾動

c++ Builder TMemo控制元件自動滾動

TMemo控制元件與TListBox相比,TMemo可以更加方便的實現文字的貼上複製,TListBox更方便進行文字的操作。在開發一款跨平臺的軟體時,我選用的是FMX平臺,由於需要呈現的資料較多,選用TMemo控制元件。

在增加日誌函式中呼叫了TMemo控制元件Add函式,但是經測試Add函式無法觸發控制元件OnChange事件。

mmoLog->Index = mmoLog->Lines->Count-1;

如果在OnChange事件新增如下程式碼,Index增加到mmoLog一頁中所能容納的行數後就不再增加。

因此只能呼叫控制元件自帶函式GoToTextEnd()。另外注意不要開啟控制元件WordWrap自動換行屬性 。

void __fastcall TfmMainShow::mmoLogChange(TObject *Sender)
{
    mmoLog->GoToTextEnd();
}
void __fastcall AddLog(String &str ,int level)
{
    String sDateTime = FormatDateTime("yy-mm-dd hh:mm:ss ",Now());
    str = sDateTime + str;
    fmMainShow->mmoLog->Lines->Add(str);
    TObject *
Send; fmMainShow->mmoLog->OnChange(Send); SaveToFile(str); }