Delphi日記
第5章 メニューにイベントを追加する(上書き保存/新規作成)(11/13/01)
今回は上書き保存を追加します。前回と異なるのは「標準イベント」に上書き保存に相当する部分がないという事です。つまりイベントを自分で作らなければなりません。
フォーム上に置いたActionListをダブルクリックし、「分類」でファイルを選択した状態で「アクションの新規追加」を選択します。すると「アクション」の欄に「Action1」が追加されます。
このままだと分かりにくいので、名前を「FileSave1」とでもしておきましょう。名前の変え方は、オブジェクトインスペクタの「Name」の項目を「FileSave1」に変えます。
これであとは他のイベントとほぼ同様に扱うことが出来ます。
イベントとメニューアイテムとの関連付けをします。オブジェクトツリーの「MainMenu1」「ファイル(&F)」以下の「上書き保存(&S)」をクリックし、オブジェクトインスペクタの「イベント」タブをクリックしてから「Action」の所で「FileSave1」を選択します。
すると何故か「Caption」の項目まで「FileSave1」になってしまうので、再び「Caption」に「上書き保存(&S)」と設定しなおします(ほんとにいいのか?と思いますが、とりあえず動いているので…)。
そして、「オブジェクトツリー」ウインドウから「ActionList1」「ファイル」以下の「FileSave1」をダブルクリックします。ユニットファイル(Unit.pas)のウインドウが現れるので、
procedure TForm1.FileSave1Execute(Sender: TObject);
が最初にあるのを確認してから最初のbeginとendの間に
if (FileName = 'untitled.txt') then
FileSaveAs1.Execute
else
RichEdit1.Lines.SaveToFile(FileName);
と入力します。設定は以上です。上書き保存のイベントを実行してみます。
実行してから適当なファイルを開きます。そして、次のように追記してから上書き保存してみます。
再びそのファイルを開き、保存されているか確認します。繰り返しますが、文字コードの問題は先送りしているので、メモ帳などではなくこのテキストエディタで開いてください。
続いて新規作成コマンドの作成です。方法は上書き保存の時と同様です。
フォーム上に置いたActionListをダブルクリックし、「分類」でファイルを選択した状態で「アクションの新規追加」を選択します。すると「アクション」の欄に「Action1」が追加されます。
このままだと分かりにくいので、名前を「FileNew1」とでもしておきましょう。名前の変え方は、オブジェクトインスペクタの「Name」の項目を「FileNew1」に変えます。
次にイベントとメニューアイテムとの関連付けをします。オブジェクトツリーの「MainMenu1」「ファイル(&F)」以下の「新規作成(&N)」をクリックし、オブジェクトインスペクタの「イベント」タブをクリックしてから「Action」の所で「FileNew1」を選択します。
すると何故か「Caption」の項目まで「FileNew1」になってしまうので、再び「Caption」に「新規作成(&N)」と設定しなおします。
そして、「オブジェクトツリー」ウインドウから「ActionList1」「ファイル」以下の「FileNew1」をダブルクリックします。ユニットファイル(Unit.pas)のウインドウが現れるので、
procedure TForm1.FileNew1Execute(Sender: TObject);
が最初にあるのを確認してから最初のbeginとendの間に
RichEdit1.Clear;
FileName := 'untitled.txt';
StatusBar1.SimpleText := FileName;
と入力します。設定は以上です。実行して、あるいはファイルを開いている状態で新規作成コマンドを実行してみます。するとテキストエリアがクリアされます。
これでファイル操作に関するイベント・コマンドは全て終わったことになります。次回以降は文字コードなどの問題点を改善して行きたいと思います。
BACK
HOME