2012-11-19 48 views
0

我在Firemonkey的TMemo中添加了行,並且當有更多的行比TMemo中顯示的行更多時,我希望添加的行可以滾動到視圖中。我找不到如何做到這一點。我試過如何在FMX中顯示TMemo中的任意一行?

Display.Lines.Add (arg); 
Caret.Line := Display.Lines.Count - 1; 
Caret.Pos := 0; 
Display.CaretPosition := Caret; 

但這並沒有幫助。幫助非常有限,所以我不確定我在這裏做什麼。

更新

當嘗試的我發現我已經測試了代碼示例錯誤的受訪者的代碼。我對此表示歉意,我唯一的藉口是,當我編寫和測試代碼時已經接近午夜了。上面的代碼確實是的工作。我從原始代碼中刪除了語句Display.CaretVisible := True;,因爲這不影響我期望的行爲。

+0

請澄清你的意思。 「顯示溢出」是否意味着「TMemo」的行數比沒有滾動顯示的行數多?顯示添加的行是否意味着**在添加的行不可見時滾動**?你只是想將它滾動到視圖中,還是要選擇添加的行? –

+0

我想將最後添加的行滾動到視圖中。選擇不相關。 Caret被宣佈爲'Caret:TCaretPosition'。 – Arnold

回答

5

既然你是剛剛通過Lines.Add()將字符串,你可以調用Display.GoToTextEnd它滾動至年底,並顯示剛剛追加行。

+0

這個答案很好。這兩個答案同樣適用,我非常感謝Jason和你。我決定將你的答案標記爲正確答案,因爲你是第一個反應。我知道這是武斷的,但我根本不知道如何否決正確的答案。 – Arnold

3

您可以將VScrollBar.Value屬性的值設置爲其最大值。這將始終滾動 - 或強制滾動條 - 到備忘錄(滾動框)的底部。

如:

Display.VScrollBar.Value := Display.VScrollBar.Max 
+0

這個工程!謝謝你的評論。另請參閱James L的回答。 – Arnold

相關問題