エディトコンポーネントは,短い文章などを入力するときに使うコンポーネントですが,文章を入力するときにセルが表示されます。そのセルをコントロールする方法を紹介します。
まず,フォームに「Edit」と「Button」を貼り付けます。
次に,Button1Clickイベントハンドラを呼び出し,以下のように記述します。
これを実行し,エディトコンポーネントに適当な文字を入力した後ボタンを押すと,エディトコンポーネントに入力した文字全体が選択された状態になります。
上の「edit1.SetFocus;」の部分を下のように変えてみます。
すると,セルが先頭に来ていることがわかります。
この「edit1.Selstart」の値を1にすると,1文字目の後にセルが来て,2にすると2文字目の後にセルが来ます。
もし最後尾にセルを持ってきたいときは,
edit1.Selstart:=length(edit1.Text);
または
edit1.SelStart:=100;//数字はエディトコンポーネントに入力する文字数より大きければいくつでもいいです。
また,下のように記述すると文字列の一部を選択することもできます。
上記のコードを実行すると,エディトコンポーネントの5文字目の後(6文字目)から3文字選択された状態になります。
これは,「memo」コンポーネントでも同じように使うことができます。
次に上記のことを使って検索プログラムを考えてみたいと思います。
まず,フォームに「memo」コンポーネントを貼り付け下のようにしてみます。
そしてButton1Clickイベントハンドに以下のように記述してみます。
これを実行して,memoコンポーネントに適当な文章を入力し,さらにeditコンポーネントに適当な言葉を入力してボタンを押すと,memoコンポ−年に入力された文章を検索して,editコンポーネントの言葉と一致するものがあれば,その部分を選択表示します。
一致した言葉が複数個ある場合は,ボタンを押すごとに次の言葉を順次選択していきます。
これを「サンプルプログラム」にして掲載しましたので,興味のある方はご覧ください。