メモと呼ばれるコンポーネントを使ってみましょう。メモはを使ってフォームに配置することが出来ます。下のようなフォームのプログラムを作ってください。
    


3-13 変数と定数(2)
―「メモ」を使ってみよう―


☆ 総目次へ ★ 第3章目次へ ★ 前節へ ★ 次節へ ☆

『Delphi入門』 3-13変数と定数(2)-「メモ」を使ってみよう-

  Memo -各行へのアクセス-

上記のプログラムで、7行目や10行目に情報を送り込もうとしても、うまくいきません。これは、現在存在していない行へのアクセスをメモが許してないからなのです。

「では、100行の情報を書き込むためには、各行にアクセスできるよう、メモにあらかじめ100行の無駄なデータを書き込んでおかなくてはならないのか?」という疑問ももっともです。

実は、Memo には Add() という、行を付け足す命令があります。プログラムを次のように変更すると、ボタンを押すたびに行が増えていきます。

基礎課題3-20

        という状態で「送り込む」ボタンを押すと
指定された場所に情報を送り込む、というプログラムを作って下さい。
練習問題

左のメモに情報が入っている状態で、「何行目」を指定して「取り出す」ボタンを押すと
    
その内容が右下のエディットに取り出される、というプログラムを作ってみましょう。

まずは、フォームの上に次のようにコンポーネントを配置します。

コンポーネント Name
左のメモ MemoMain
右上のスピンエディット SpinEditLine
右のボタン ButtonAccess
右下のエディット EditEachLine

次に、プログラムを書きます。

MemoMain の各行は、内部インデックス番号で管理されています。行目が”0”、行目が””、行目が””、…というように順序がつけられています。実行時にMemoコンポーネントの各行の内容を参照するには次のように記述します。

C++Builder Delphi
Memo1->Lines->Strings[各行数] Memo1.Lines[各行数]

…という (Strings まで含めた) 本来の書き方でないとアクセスできません。
Delphiとの相違点

という形でアクセスすることができます。下のプログラムを作成して下さい。

基礎課題3-19

Lines プロパティの値を変えて、プログラムを実行したとき、メモに

北海道
江別市文京台
札幌学院大学
社会情報学部

と表示されるようにしましょう。

練習問題

オブジェクトインスペクタで Memo1 を選んで ScrollBarsssNone から ssBoth に変えると、プログラムはどのように変わりますか?

                                                          

WordWrap プロパティを False にすると、何が変わりますか?
ヒント:実行中にメモに大量の文章を入力すると違いが分かります。

                                                           

『Delphi入門』 3-13変数と定数(2)-「メモ」を使ってみよう-

☆ 総目次へ ★ 第3章目次へ ★ 前節へ ★ 次節へ ☆




基礎課題3−19 解答
基礎課題3-20 解答