全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1665
推到 Plurk!
推到 Facebook!

如何能讓TMEMO 跳到指定的行

尚未結案
danielx2000
一般會員


發表:29
回覆:33
積分:22
註冊:2002-09-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-10-17 10:09:36 IP:59.120.xxx.xxx 未訂閱
如何能讓TMEMO 跳到指定的行號, 我試用了.selStart 的方法還是行不通 請問還有其他的方法嗎?
shinjie
資深會員


發表:12
回覆:275
積分:287
註冊:2003-03-19

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-10-17 11:21:33 IP:203.73.xxx.xxx 未訂閱
資料來源 http://www.starinfo.net.cn/computer/hkj_1234/delphi15.htm
procedure SetCaret(Mmo: TMemo; var Row, Col: word);
var
i, iStopLine, iSelStart: integer;
begin
if (Mmo = nil) then Exit;
if Row = 0 then Row := 1;
if Col = 0 then Col := 1;    iStopLine := Row - 1;
iSelStart := 0;
for i := 0 to Mmo.Lines.Count - 1 do
begin
if i = iStopLine then
begin
if Length(Mmo.Lines[i]) >= Col then
Inc(iSelStart, Col)
else
Inc(iSelStart, Length(Mmo.Lines[i])   2);
Break;
end;
Inc(iSelStart, Length(Mmo.Lines[i])   2);
end;
if iSelStart > 0 then Dec(iSelStart);    SendMessage(Mmo.Handle, EM_SETSEL, iSelStart, iSelStart);    Row := SendMessage(Mmo.Handle, EM_LINEFROMCHAR, Mmo.SelStart, 0);
Col := Mmo.SelStart - SendMessage(Mmo.Handle, EM_LINEINDEX, Row, 
0);    SendMessage(Mmo.Handle, EM_SCROLLCARET, 0, 0);
end;    procedure TForm1.Button1Click(Sender: TObject);
var
iRow, iCol: word;
begin
iRow := 6;
iCol := 1;
SetCaret(Memo1, iRow, iCol);
Memo1.SetFocus;
end;
========================================= 程式有問題並不可怕,最怕是不知問題出在那 不知問題在那不可怕,更怕是不知如何問問題 寫程式要從最簡單的開始
------
我將在茫茫人海中尋訪我唯一之靈魂伴侶。
得之;我幸。不得;我命。
系統時間:2024-05-19 19:21:39
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!