コラム / バイナリエディタ / 8



さて、あとは、ファイル メニューですが、
ここはちと難しいです。
スマートな構造にするにはどうするか、今まさに考え中・・・
とりあえず、上書き保存 するためには、
「今開いているファイルのファイルパス」が わからないといけない
のです。
上書き保存、 とか 名前をつけて保存、
までは、サポートしてないわけっすね。
さて、「今開いているファイルのファイルパス」を覚えるために、
変数を一つ定義しましょうか。
ただの文字列型でおkです。
エディタウィンドウの、
var
  Form1: TForm1;
というところに、
var
  Form1: TForm1;
  FilePath : String;
と、一つ追加してください。
var は、 変数宣言部分 で、
変数宣言は、
変数名 : 型 ;
でしたね。
String型の変数 FilePath を 定義して! って意味です。
String型というのは 文字列型 です。
文字列1行分のための変数でしたね。

img34.png

特に工夫が要らないので、新規作成 部分を作りましょう。
バイナリデータを0からポチポチ入力する人なんて居ないと思いますが、
やっぱり新規作成はメニューにあるべきですよね?w
メニューから ファイル>新規作成 とクリックしてください。
でてきた部分に入力。
procedure TForm1.New1Click(Sender: TObject);
begin
    //新しく作るんだからパスは未定。
    FilePath:='';
    //今書かれてるテキストをあぼーん。
    Memo1.Clear;
end;
//で始まってる行はコメントでしたね。
プログラムとは関係ありません。
コンパイルして実行ファイルを作るときにはスルーされます。
FilePath := '' ;
ですが、「 := 」というのは、右辺の値を左辺の変数に入れろ!
という、「代入演算子」とか呼ばれる奴です。
C言語とかJAVAだと、代入は「=」なんですが、
Delphiで「=」は 等しい という意味の、「比較演算子」 なので、
代入は違うんですよね。
この「:」を忘れるとエラーが出ちゃいます。
他の言語の経験者は絶対このエラーを一度は出す!
で、FilePathは文字列型ですから、右辺も文字列でなければなりません。
プログラムで直接値を指定するとき、
「文字列はシングルクォートでくくる」というルールは覚えてましたか?
あれ? しかし、「''」とは、何もくくってませんね。
いえーす。何もくくらない=空っぽの文字列
という意味になり、代入する=値を消去 という意味なのです!
これで、ファイルパスが初期化できます。
その次の行はコメントですからスルーして、
Memo1.Clear;
はい、なんというか、そのまんまですが、
Memo1のclearを実行せよ、という意味で、
Clearというのは、書かれているテキストを全消しする手続きです。
これで新規作成ができました。
次から急に難しくなる悪寒・・・ でわ