c++ Builder TMemo控制元件自動滾動
阿新 • • 發佈:2019-01-26
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);
}