RICHEDIT使用問題?(100分)

  • 主题发起人 主题发起人 mala_hong
  • 开始时间 开始时间
i:=i+1;
if i>=richedit1.Lines.Count then
begin
i:=0;
richedit1.SelStart := richedit1.Perform(EM_LINEINDEX, 0, 0);
end;
SendMessage(RichEdit1.Handle, EM_LINESCROLL, 0, 0);
是這樣嗎?好像行不通?
 
什么现象? 程序 开始 的时候 i 的初值是什么?
timer 是什么时候开始的?
 
還有, 文本滾動是以頂為基准一行行滾動,能以底為基准嗎?
 
現象: 不能循環.
i初值為0
timer從form創建后即開始執行.
 
//文本滾動是以頂為基准一行行滾動,能以底為基准嗎?
不清楚,好象也没有必要吧

//不能循環
估计: if i >= (richedit1.Lines.Count - 5) then
应该可以,如果还是不行,就这样:
那你在 ontimer 中加入:
caption := 'i: ' + inttostr(i) + ' Max: ' + inttostr(richedit1.lines.count);
一看就知道问题出在哪里了。
 
還是不行, 是不是richedit1.SelStart := richedit1.Perform(EM_LINEINDEX, 0, 0);
這條語句有問題?
 
我確認了richedit1.SelStart := richedit1.Perform(EM_LINEINDEX, 0, 0);不能
翻到第一行, 怎樣讓它翻到第一行呢?
 
richedit1.SelStart := 0;
RichEdit1.Perform(EM_SCROLLCARET, 0, 0);
这样应该可以翻到第一行
这下没问题了吧
 
多人接受答案了。
 
hehe, 不用谢,多多交流嘛,我也经常得到其他富翁的大力帮助
 
后退
顶部