今、エディターはこんな状態になってるとおもいます。
この、var のところに、こんな行を追加しましょう。
procedure SaveBinText(SaveTo:String);
といっても、varの中に所属することになるわけじゃなくて、
varと同じ階層? になります。(もしかしたら違うwww
まぁこんな感じ
この行の意味の説明は一度置いておいて。
Delphiの構文では、プログラムが大きく 上と下にわかれていて、
それぞれ、
interface - 定義部
implementation - 実装部
と 別れています。
定義部では、関数名やクラスのプロパティーなど、
さまざまな要素の、「取り扱い説明書」だけを書きます。
実装部では、それらの関数の実際の挙動、
プログラムの本体、つまり、「実際の設計図」を書きます。
さて、それを踏まえてさっき追加した行に戻りましょう。
procedure SaveBinText(SaveTo:String);
まず、procedure というのは、
「手続きの宣言」 という特殊な単語です。
procedure 手続き名;
procedure 手続き名 引数;
という風に使います。
「手続き」なので、「関数ではありません」
ただ実行するだけの部分であって、返り値が無いので、
式の中に組み込んだりするのではなく、単体で1行書いて呼び出したりします。
ちなみに、C言語を作った人は、
Pascal(Delphiの言語)の、「手続き」という概念を批判してるらしいです。
まぁ、ないよりあるほうがマシ、と思うんだけどねw
今回の場合、
手続き名 SaveBinText
引数 (SaveTo:String);
となっています。
手続き名は、他のものとかぶらなければ自由につけてよいです。
ただ、Delphiの中の人のオススメで、
手続き、関数は動詞、変数、プロパティは名詞 を使うといいよ
と決まってるので、 Saveってしてみました。
引数は今まで、いろんな命令を使うときに、
それに渡していた値ですが、
自分で命令を定義するときには、もちろん自分でルールを決められます。
書き方は
引数名:型;引数名:型;引数名:型;・・・
というように、var の中身を一行にしたような感じです。
一つ一つをセミコロンで区切るのがポイントですね。
今回は、引数で与えられたパスのファイルに、
Memoのテキストをバイナリとして読んで保存するので、
その保存先のパスを与える引数として、
SaveTo を 文字列型で定義しました。
多分ここは名詞にするべきなんですが、英語が苦手なのでフィーリングです。
うわっはっは
さて、これで、
「与えられた引数のパスにバイナリデータを保存する」
という手続きの定義部ができたわけですが、
ちょっと定義した場所について考えて見ましょう。
Delphiでは、見える見えないの概念があり、
(スコープって書こうとしたけど言いたいこととちょいと違う気がしたので
上に行けば行くほどみんなから見え、
下に行けば行くほど一部からしか見えなくなります。
見えない場所から見えないものにアクセスすることはできません。
ただ、上の部分が見えている場合、
上の見えてる部分.間の見えない部分.さらに奥の見えない部分.奥の奥の見たい部分
というように、.を使って参照していくわけです。
今回定義した位置は、
interface>procedure
という位置になっていて、特に何かの要素の内側ではなく、
「定義部の一番上の階層」に定義されていることになります。
これは、構造上、どこからでも読める、一番態度がでかい位置です。
オブジェクト指向の考え方からすれば、
この関数はMemo1とかSaveDialog1に依存しているので、
Form1の中の階層に定義するほうが理にかなっているかもしれません。
ただし今回は、他のコードファイルと連携したり、
別のフォームがあるわけではないので、
アプリケーションそのもの=フォーム という状態になっているので、
一番態度がでかい位置に定義してもいいかな、と思いました。
さて、実装部を見て見ましょう。
今、コードは、
・
・
・
というようになっています。
まぁ、implementatiton から、end.の前までは、
全部実装部なんですが。
( end. は、ソースコード全体の終わりです っていう単語なので、
( 実装部とは別です。・・・・多分。
実装部の構造は案外単純で、定義部よりスマートです。
procedure 手続き名 引数;
begin
end;
と
function 関数名 引数:返り値;
begin
end;
がただズラズラと並んでいるだけです。
イメージ図はこんなかんじ
さて、ただズラズラと並んでいるだけ、ということは、
定義部みたいな面倒な位置の概念はありません。
上の図でいう、青緑の四角と四角の隙間であれば、
どこでもよいわけです。
んまぁ、真ん中ぐらいに書くと、
後でまた見るときに、スクロールする途中で通り過ぎたりして、
あれ?どこだ?うわー! と なったりするので、
一番したのend.の上の隙間か、
implementationのすぐしたの隙間をおすすめしますが。
スクロールに関してはdelphiはちょいとダメです。
無料版で使える補助機能としては、
右クリック→しおり ぐらいしかありません。
このしおり、
「どのしおりがどこかを自分で覚えていないと無意味」
「限定10個生産」
という、やる気あるのか不安な機能なんで、
それでも俺は全てを使いこなす!って方は自分でいじってみてください。
それじゃぁ実装部にコードを書きましょう。外枠だけ。
はい、procedureはCtrl+Jでショートカットできます。
その右は上からコピペしてきてください。
begin - end; をつければ完成です。
次からその中を書いていきましょう。
コンテンツ
最新の12件
2023-06-12
2021-02-15
2013-06-19
2012-07-14
2012-02-04
2012-01-06
2011-03-31
2010-08-26
2010-03-15
2009-10-21
2009-02-12
2008-11-18
メニュー編集
- counter: 809
- today: 1
- yesterday: 0
- online: 1