−トップへ−

メモコンポーネント

 メモコンポーネントは,複数行の文章を扱うことができるものです。具体的には,文章を入力することと,情報を表示させることの2種類の働きがあります。

 メモコンポーネントのプロパティの中で,[Left],[Top],[Width],[Height],[Font]などはすぐわかると思うので。ほかの項目について述べていきます。
 プロパティの中に[Alignment]がありますが,これは左揃え,中央揃え,右揃えを変える働きがあります。
 
 上の図は[Alignment]の内容を変えたものです。左揃えと右揃えは[BidiMode]でもできますが,[Alignment]との違いが分かりません。
 [ScrollBars]はメモコンポーネントにスクロールバーを表示させるものですが初期設定では表示されないようにしてあります。ここを操作して縦と横の両方表示させようとしても縦のスクロールバーしか表示されませんでした。
 [ReadOnly]は,実行時にメモコンポーネントに直接入力することをできなくすることができます。初期設定はチェックが外してありますが,チェックをすると入力できなくなります。
 [Lines]は,メモに表示する文章を保存するものです。[Lines]の項目をクリックすると右端に「…」のマークがあるのでそこをクリックすると右の図が現れます。ここを編集することで表示される文章を変えることができます。






 次に,メモコンポーネントに文字列を表示させる方法について述べていきます。ここでは文字列を行ごとに操作することを基本にしています。
 メモコンポーネントの文字列の最後に追加するのが,
  memo1.Lines.add((文字列));
という命令です。これは,表示されている文章の最後に改行して文字列を追加します。
 メモの中の文章行ごとに削除する場合は,
  memo1.Lines.Delete( (数値) ) ;
という命令を使います。ここで注意することは,1行目を削除するときには数値に「0」を使い,2行目は「1」になります。
 他には,メモの文章をすべて削除する命令として,
  memo1.Lines.clear;
  というのがあります。
 以上の3つを使ってそれぞれのはたらきを確認するソースコードを書いてみます。フォームの上に貼り付けるのは,メモコンポーネント1個,エディットコンポーネント1個,ボタンコンポーネント3個です。やることはボタン1でメモの内容をすべて消去,ボタン2で1行目から10行目まで書き込む,ボタン3で指定した行を削除,以上の3つを行います。
 まず[Button1]から[Button3]の[OnClick]のイベントを呼び出して,以下の内容を記述してください。

procedure TForm1.Button1Click(Sender: TObject);
begin
  memo1.Lines.clear ; //メモの内容をすべて削除する
end;

procedure TForm1.Button2Click(Sender: TObject);
 var
  i : integer;
begin
  for i := 1 to 10 do //処理を1から10まで繰り返す
    memo1.Lines.Add( inttostr( i )+ '行目' ); //メモに「1行目」から「10行目」まで記入する
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  memo1.Lines.Delete( strtoint( edit1.Text ) ); //エディットコンポーネントに書かれた行の内容を削除する
end;

 これを「実行」した後,エディットコンポーネントに1を入れて削除すると2行目が削除されます。これは前述したように,0が1行目を表すためです。
 また,エディットコンポーネントに数字以外の文字を入れるとエラーが起きるので注意してください。


 今までは,行ごとに操作する方法を述べてきましたが,文字列として操作する方法についても簡単に述べておきます。
 メモコンポーネントの書かれた文字を,文字列として扱うには「 memo1 . Text 」と表記します。この表記はプロパティの中にはありませんが,このように表記すると,次のような表記ができます。

  var
    str : string ;
   :
   :
  str := memo1.text ; //メモコンポーネントの内容を文字型変数に代入する
  memo1.text := memo1.text + '終わり' ; //メモコンポーネントの内容の最後に改行なしで「終わり」をつけたす

−トップへ−