掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
このプログラムをどのように改良すれば・・・ (ID:18524)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
目標がRitchEdit上で\beginと入力したら、 \begin { { と表示されて、カーソルが{}の真ん中の行に持っていくという プログラムなんですけど、 procedure TForm1.RichEdit1KeyPress(Sender: TObject; var Key: Char); var LineNo,CP : Integer; buf : String; FCheckLineNo : Integer; begin // カーソルのある行番号とその行の先頭文字位置を取得 LineNo := SendMessage(RichEdit1.Handle,EM_LINEFROMCHAR,-1,0); CP := SendMessage(RichEdit1.Handle,EM_LINEINDEX,LineNo,0); // OnChangeでのスペルチェック行を設定 FCheckLineNo := LineNo; // カーソル行先頭からカーソル位置までの文字+今入力された文字を取得 buf := Copy(RichEdit1.Text,CP + 1,RichEdit1.SelStart - CP) + Key; // 後ろが'\begin'であれば... if AnsiEndsStr('\begin',buf) then begin // 今入力された文字と'{ }'行を挿入 RichEdit1.SelText := Key; RichEdit1.SelText := #13#10 + '{' + #13#10 + #13#10 + '}' + #13#10; // カーソル位置を '{}'の間に移動 RichEdit1.SelStart := CP + Length(buf) + 3; Key := #0; end; と教えていただいたんですが、 実行してみると、RitchEditの先頭行では予想通り実行されるんですが、 行数を変えると実行されないのですが違う行数でも予想通り実行 されるにはどのようにすればよろしいのでしょうか?
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.