掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
行の取得がうまくいかないときがあるは何故ですか? (ID:43105)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
i:=GetScrollPos(RichEdit1.Handle,SB_VERT); はどれだけスクロールしたかを見る関数でした。 先の投稿の中で勘違いした記述をしてしまいました。 一応 if i>=7718 then i:=i-7718; を入れてみました。 この文を除けると、ボタンAを押したらエラーが出て、 この文を入れると、ボタンAを押してもエラーは出ません。 実はボタンAを押すと、480行表示するんです。 7718 div 17=482 何か関係ありますよね? やはり、スクロールバーの初期化がいるんじゃないでしょうか。 i:=setScrollPos(RichEdit1.Handle,0,0,st); これを挿入しました。 これを入れて実行したら、エラーは出ません。 除けてもエラーは出ません。 これで、しばらく様子を見て問題なければ、解決にします。 通りすがりさん、いつもと同じ反応だねさん ありがとうございました。 私みたいな年になっても、調べたらできるんですね。 通りすがりさんの「わかるよね」で、頭が働き始めました。 また、質問ができたら来ますので、よろしくお願いします。 procedure TForm1.RichEdit1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var s:string; ST:boolean; gyo,p,I:integer; begin if RichEditFlg=true then begin i:=setScrollPos(RichEdit1.Handle,0,0,st); i:=GetScrollPos(RichEdit1.Handle,SB_VERT); gyo:=((i+y-5) div 17); S:=Copy(RichEdit1.lines[gyo],7,4); //showmessage(IntToStr(gyo)); p:=pos(' ',S); if P>0 then s:=copy(s,1,p-1); richedit1.Clear; richedit1.lines.add(s); end end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.