掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
カーソル位置がどこにあっても、文字列を切り出したい (ID:3010)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
にしのさん> 早々の回答、大変ありがとうございます。 ちょっと、キャレットとマウスカーソルの意味での質問が混同して申し訳ありませんでした。 現在のキャレット位置に強制的にマウスカーソルを移動させて、擬似的にダブルクリックさせ、 文字列を選択状態(反転)したいという意味に訂正させていただきます。 しかし、下記のようにするのが、本来の方法かもしれませんね。 >本題ですが、現在のキャレット位置がわかるので、そこから前に単語の境目を探し、 >次に、現在のキャレット位置から後ろに単語の境目を探します。 >単語の境目に何を使うかによって、切り分けられる文字列が変わります。 >今回の場合は、アルファベット以外がきたら境目、と判断すればいいと思います。 ただ、途中までやって見て、あきらめきれないので、アドバイスして頂けたら幸いです。 下記のようなルーチンで実験していますが、マウスカーソールがその位置にあわせている状態 でalMojiSelectを実行させるとダブルクリックして選択されますが、マウスを移動させると 選択できません。つまり、常に任意のキャレット位置にマウスを強制的に移動させて実行 させたいというものです。 procedure TForm1.alMojiSelectExecute(Sender: TObject); var nPosx,nPosy: Integer; FindPos:TPoint; begin nPosx := RichEdit1.CaretPos.x; //現在のキャレット位置 x (行) nPosy := RichEdit1.CaretPos.y; //現在のキャレット位置 y (桁) FindPos.x :=nPosx; FindPos.y :=nPosy; GetCursorPos(FindPos); SetCursorPos(FindPos.x,FindPos.y); mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0); mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0); mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0); mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0); //省略 end;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.