ここで、usesの宣言のところよく見てください。アプリケーションのusesの宣言とはクラスの名前が若干異なることに気がついたかと思います。Monkey)では使用するコンポーネント全く異なります。Monkey)独自のクラスになります。コメントは受け付けていません。木曜日アプリケーションの実行とテストコンパイル/ビルド/デバッグ/実行これらの作業(コンパイル/ビルド/デバッグ/実行)は人間が理解できるPascal言語の記述をコンピュータが理解できる機械語に翻訳する作業になります。Delphiを始め、Pascal系のすべての言語に共通する事であり、同じ作業を必要とする言語にC言語、C++言語が該当します。これらの言語を総称して「ネイティブコンパイラ」と呼びます。似たような仕組みの言語に「インタプリタ」系の言語があります。有名どころとしては「Java」、「C#」、「VB.net(VB)」が存在します。インタプリタ言語は「ネイティブコンパイラ」系の言語と異なり、アプリケーション単体では動かず、それぞれの言語に対応したライブラリをパソコンにインストールしておかないと、アプリケーションを起動する事が出来ません。逆に言うと、このライブラリさえインストールすればWindowsでも、Macでも、Linuxでも同じ実行ファイルで動いてしまう事になります。(特定のOS環境に依存した機能を使ったり、書き方をした場合は除く)上記の言語と一線を画するのが「スクリプト」系言語です。「インタプリタ」系言語と同じでライブラリを必要とします。このスクリプト系言語の最大の特徴はただのテキストファイルが実行権限を持って動いてしまう事です。この最大の強みは特定の開発環境がなくとも、極端な話、メモ帳一つで作れてしまう事です。拡張子を表示できるようにします。Windows7なら、コントロールパネルを起動し、表示方法を「大きなアイコン」にして、「コントロールパネル」→「フォルダーオプション」→「表示」から、「登録されている拡張子を表示しない」のチェックボックスを外します。Windows10なら適当なフォルダを開くか、エクスプローラを起動し、「表示」タブを選択、ファイル名拡張子のチェックボックスを入れます。Script)で作っていきます。Delphiで実行した場合コンソールアプリケーションを新規に作り、以下のコードをtryとexceptの間に記述し、実行します。ソース7writeln(DateTimeToStr(now));sleep(4000);実行結果:メモ帳を起動します。Script:下記をメモ帳に記述し、「nowtime.vbs」という名前で保存します。完了したら、そのファイルをダブルクリックします。ソース8msgbox(now)違いが判りましたでしょうか?Delphiで記述するには必ずDelphiが必要で、僅かでも変更をするには必ずDelphiで編集しないとなりません。対して、スクリプトはメモ帳一つでも作れてしまいます。「実行形式プログラム(*.exe)」プログラムのテストコンパイラとリンカが動いて、実行形式プログラムが生成されても、これでプログラムが正しく動くとは限りません。先ほどのプログラムを保存が完了したら、新しいプロジェクトを作ります。VCLフォームアプリケーション」を選ぶか、ツールバーから新規作成を選びます。すると、見慣れた新規作成のダイアログが出るので「VCLアプリケーションを選びます」。新しいフォームが表示されるので、以下の画面の様にコンポーネントを配置します。配置するものは「Edit」コンポーネント2つ、「Button」コンポーネント1つです。Editコンポーネント二つのTextプロパティを数字の「0」に、ButtonコンポーネントのCaptionプロパティを「足す」にします。Buttonのイベントハンドラを記述します。Buttonコンポーネントをダブルクリックします。ソース9をイベントハンドラに貼り付けます。('計算が出来ません、エラーです。すると、コンパイルが始まります。論理エラーが発生した例この論理エラーはプログラム設計時に想定された入力が数値と仮定していたものの、実際には数値ではなく、文字列が入力された事によって生じます。例示したものは単純ではありますが、このような事は実際に何かを作ってみると、よくある事で、細心の注意が必要です。今回は入力という見やすいものでしたが、これがインターフェースからは見えない内部的な処理だったりすると、とても厄介なものになります。今度は、設計時エラーを実践してみましょう。ソース10を先ほどのイベントハンドラの記述と置き換えます。Showmessage('計算が出来ません、エラーです。押すと、ビルドが始まり、コンパイルの段階でエラーが表示される筈です。「OK」を押すと、以下の様に31行目が赤く表示される筈です。イタリック表示にしたところが、エラーの原因箇所です。StrToInt(Edit2.Text)));では、エラーを修正しましょう。{IntToStr}の、グリーンの箇所を削除しましょう。IntToStrとなる筈です。押して、ビルドをして実行しましょう。今度は実行できたはずです。先ほどのエラーの意味は「文字列を期待したのに、数値が入っていたので、実行できませんでした」というエラー結果でした。基本中の基本の型変換になります。次章で詳しく説明するかと思います。この一連の作業を「デバッグ」と呼び、論理エラーや設計時エラーを修正していく作業になります。一回、細かくデバッグをしていきましょう。コメントは受け付けていません。木曜日ビジュアル設計ツールの使い方~ツール紹介編~ユーザーインターフェースユーザーインターフェースとはユーザー(アプリケーションを使う人)とアプリケーションとの対話の手段で、アプリケーションの目に見える表示要素と言えます。かみ砕いて書くと、ユーザーインターフェースとは「ユーザー(使う人)」との「インターフェース(接点又は接続部分)」であり、固い言い方をすると、「アプリケーションと人とを繋ぐ接続コネクタ」であると定義できます。Delphiに例えるなら、画面真ん中にある「フォーム(ウインドウ)」がそれであり、エディット、リスト、ボタン等、限られた、しかし多くの要素(コンポーネント)の中からユーザーの使用目的に合致すると思われる要素を適切なサイズで、適切な場所に、適切な操作方法で、設置/設定する必要があります。これらの要素にはユーザーからの入力に応答し、他の要素に操作した結果、得た情報やメッセージ(これを値、又は返り値と呼びます)を表示させる事が出来ます。ここで重要なことは、ユーザーが想像し得る適切な要素に値を渡す必要があるという事です。これらが思いの外、時間が掛かったり、ユーザーが操作法を想像しにくかったり、手間暇のかかる操作だったとしましょう。一つの操作をする度に、5回の確認やマウス、キー操作を要すると仮定します。時間がないときに大急ぎで操作していたとしたら、ユーザーは何を思うでしょうか?答えは幾つか考えられます。そんな設計をした人が誰なのか、不条理な思いをしながら操作するか、あるいは直ぐに放り投げて、興味を失ってしまうかのどちらかと思われます。操作する際の階層の深さや手数は3回迄、要素の配置には熟慮を重ねた上で、ルールを作ってグループ分けをしっかり定義して配置すべきでしょう。以上が、ユーザーインターフェースを設計する上での、基本的で重要な考え方になります。ビジュアル設計ツールDelphiでは、ユーザーインターフェースを実際に動かした時と同じ状態で設計、作成する事が出来ます。フォーム:実行時にウインドウとなり、アプリケーションの画面となる部分で、先ほど説明したユーザーインターフェースを設計し、作っていく土台となるものです。ツールパレット(コンポーネントパレット):コンポーネントがグループ分けされて、パレットに収まっています。「検索」から、欲しいコンポーネント名を検索すると、全てのコンポーネントから検索して一覧を表示してくれます。検索したら、ダブルクリックか、ドラックアンドドロップで、フォーム上に配置していきます。構造(オブジェクトツリー)真ん中の画面が「デザイン」(フォーム)なら、コンポーネントの配置を「コード」なら、ソースコードのそれぞれのツリー構造(オブジェクト同士の上下関係)を表示します。「デザイン」(フォームの場合)「コード」(コードエディタ)の場合オブジェクトインスペクタオブジェクトインスペクタはDelphiでアプリケーションを開発する上で、決して欠く事の出来ない、非常に重要なツール、又はオブジェクトリポジトリです。このオブジェクトインスペクタはフォーム(ウインドウ)やコンポーネント(要素)のプロパティ(設定)を変えたり、又は、それらのイベントハンドラを設定して作成し、開発する人(つまりあなた)に、コードを記述する場所をナビゲートしてくれます。このツールが使えなくなったら、オブジェクト指向での開発は不可能ないし、酷く効率の悪いもの(全て、1から自分で書く必要に迫られます)になってしまうでしょう。プロジェクトマネージャで「Project1.exe」をアクティブプロジェクトに設定します。判らなくなったら、プロジェクトマネージャの説明まで戻りましょう。選択出来たら、「Project1.exe」のツリー構造を展開し、更に「Unit1.pas」のツリー構造を展開、「Unit1.dfm」をダブルクリックします。次に、真ん中の画面で下にある「コード/デザイン」を、「デザイン」が選択されていることを確認してください。されていなかったら、デザインをクリックして選択します。ツールパレット(画面の右下側)から、「検索」から「Panel」と入力します。Panelコンポーネントが検索で引っかかるので、これを、配置します。4.の手順で、「Memo」をForm1に配置します。5.の手順で、「Panel1」をクリックして選択します。4.の手順で、「Button」を3つ、Panelに配置します。4.の手順で、「OpenDialog」、「SaveDialog」を、何処でもいいので配置します(これを非ビジュアルコンポーネントと呼びます。実行時は見えないのが特徴です)。5.の手順で、「Panel1」を選択します。オブジェクトインスペクタのプロパティタブを選択し、検索から「Caption」と入力します。「Caption」プロパティが見つかるので、右隣りのテキスト編集領域から、「Panel1」という文字を削除します。この文字を「プロパティの値」と言い、ここを変えてあげることで、コンポーネントの設定を変える事が出来ます。今度は、11.の手順で、「Align」と入力し、テキスト領域をクリック、パネルの図がドロップダウンして表示されるので、一番上の細長いパネルをクリックします。値が「alTop」に変わったことを確認します。「Panel1」に配置した「Button」コンポーネントを左詰めで、バランスよく、Panel1上に並べます。11.の手順で、「Button」コンポーネントの表示されている名称を変えていきます。左端から、「新規」、「開く」、「保存」と入力していきます。5.の手順で、「Memo1」を選択し、「Align」を12.の手順で真ん中のパネルの設定をし「alClient」に変わったことを確認し、検索から「Lines」を探して、テキスト入力エリア(プロパティエディタと呼びます)の「(TString)」をダブルクリック、メモがあるポップアップダイアログが表示されるので、「Memo1」という文字を消して「OK」を押します。以下の様に、フォームが設定される筈です。Button「新規」、「開く」、「保存」の「イベントハンドラ」を、設定していきます。新規Buttonをクリックするか、5.の手順で選択します。オブジェクトインスペクタのイベントタブをクリックし、検索から「OnClick」を探し、右の空白をダブルクリックし、イベントハンドラを作成します。コードエディタと呼ばれるウインドウが出現し、以下の文言(コード)がある筈です。TForm1.Button1Click(Sender:TObject);beginend;Beginとendの間に、以下の命令文を貼り付けます。ソース3//新規作成(メモ帳の初期化)Memo1.Lines.Clear;22.今度は、20.21.の手順で、「開く」、「保存」に、以下の命令文を貼り付けていきます。thenexit;tryMemo1.Lines.LoadFromFile(OpenDialog1.FileName);except//実行時例外の発生Showmessage('ファイル:'+OpenDialog1.FileName+'は開けませんでした。thenexit;tryMemo1.Lines.SaveToFile(SaveDialog1.FileName);except//実行時例外の発生Showmessage('ファイル:'+SaveDialog1.FileName+'は保存出来ませんでした。');end;全体を見ると、以下の様な形になる筈です。'は開けませんでした。'は保存出来ませんでした。以上で、一つ目のアプリケーションのコーディングが完了しました。今度は実行してみましょう。ツールバーから、以下のボタンを探します。このボタンを探して押します。何か間違いがあれば、以下の画面が表示されます。エラーの箇所はダイアログの「OK」を押した後、赤線が引かれて表示されます。(今は、そういうものだと思ってください)ここでは、エラーは出ない筈なので、イベントハンドラの記述をよく見比べてください。成功すると、以下の画面が表示され、アプリケーションが動きます。今度は「Project2.exe」をアクティブプロジェクトにして、こちらも全く同じものを制作してみてください。フォームの画面やコンポーネントの種類や数が若干変わりますが、作り方もイベントハンドラの記述も全く同じです。出来上がったら、名前を付けて保存しましょう。今回作ったものは次回の章でも使いますのでご注意ください。Monkey双方で特徴がはっきりと分かれ、コードの書き方や、コンポーネントの設定が両者で大きく変わっていきます。次はコンパイル、デバッグ、実行についてになります。右のアイコンをクリックします。\Documents\Embarcadero\Studio\Projects」に保存してしまわない事。ここに保存してしまうと、後でいろいろと厄介なことになります。\Documents\Embarcadero\Studio\Projects」というフォルダは、Delphiがプロジェクトを新規作成する際に使用するデフォルトのフォルダになります。ここに保存してしまうと、後から新規作成した際にDelphiが既にProjectがあるのを察して、例えば、今回作った(二つのエディタ)ものだと、グループ名は「ProjectGroup1」ではなく「ProjectGroup2」(既に「ProjectGroup1」が保存されている為、1は使えない)、プロジェクト名も「Project1,Project2」が保存されているので、「Project3」からになり、ユニット名も、二つ保存されているので、「Unit3」からになります。フォルダ階層も結構深いので、ここに保存してしまうと、「あれ、あのファイル何処行った??」、「この前編集したプロジェクトは、この中のフォルダのどれだっけ??」という事になりかねません。以上の事を気を付けたうえで、今回は「デスクトップ」に「エディター」というフォルダを作成してそこに保存します。ユニットから保存することになります。今回は標準の名前でもいいでしょう。名前を付けるなら「unit1」が「vcl_edit」、「unit2」が「FireMonkey_Edit」が妥当でしょう。次はプロジェクトの保存になります。これは実行ファイル名になるので、慎重に名前を付けましょう。今回だと、ユニット名と同じ名前で良いでしょう。一つのプロジェクト(グループではなく)に複数のユニットがある場合はユニット名と名前を重ねてしまうと、命名管理に支障をきたす(何が何だか、名前の意味が分からなくなりかねない)ので、プロジェクト名にアプリの名前(日本語は避ける事)、ユニット名に、ユニット(フォーム)の機能名あるいは何をするユニット化を分り易く命名した方がいいでしょう。コメントは受け付けていません。Monkeyの二つを使います。同じ簡単なメモ帳アプリケーションを作りながら、オブジェクトリポジトリの使い方を実践的に学んでいきます。途中、コードの打ち込み作業もありますが、今は何も考えずにコピーアンドペーストして、指示通りの箇所に貼り付けていってください。この章で取り扱う事は、Delphiを扱ううえで、必要最低限の基本的なことです。ここを理解できないと、この先の章で間違いなく躓きます(交通規則への理解や車の運転免許証を持っていても、車の操作方法が判らないと、何もできないのと同じです)。繰り返し読んでみて頑張りましょう。触る、慣れない道具を使うというのは、本人にしか判らない苦痛かと思いますが、めげずに頑張っていきましょう。頑張れば、半年から1年後、楽しみながらDelphiを使いこなすあなたが、そこにいる筈です!プロジェクトの新規作成メニューから、「ファイル」→「プロジェクト」→新規作成→「その他」を選択します。するとダイアログウインドウが現れます。これを「オブジェクトリポジトリダイアログ」と呼びます。そこから「VCLフォームアプリケーション」を選択します。プロジェクトマネージャDelphiの画面右上に、「プロジェクトマネージャ」と表示されている枠がある筈です。無い、又は表示を間違って外してしまったならば、メニューから、「表示」→「ツールウインドウ」→「プロジェクトマネージャ」を選択すると、表示されます。この枠(又はウインドウ)を「プロジェクトマネージャ」と呼び、プロジェクト(これから作るアプリケーション)を管理したり、切り替えたり、呼び出したりと、頻繁に使う機能の一つです。プロジェクトの追加(新規作成)「プロジェクトマネージャ」の「ツールバー」から、フォルダアイコンに+マークが付いたアイコンにマウスカーソルを合わせます。1秒程待つと、「新規プロジェクトの追加」というポップアップヘルプが表示されますので、そのボタンを押します。すると、先ほど新規作成で表示された、「オブジェクトリポジトリダイアログ」が表示されます。そこから、「マルチデバイスアプリケーション」をダブルクリックするか、選択して「OK」を押します。すると、「プロジェクトマネージャ」に、「Project2.exe」という、新しいプロジェクトが表示されたはずです。アクティブプロジェクトアクティブプロジェクトとは、現在編集中(編集が有効になっている)のプロジェクトの事を指します。かみ砕くと、現在作業中(現在編集作業中)のプロジェクトの事を指します。アクティブプロジェクトを調べるには、プロジェクトマネージャのタイトルバーを見ます。左詰めで、プロジェクト名が表示されているはずです。細字ならば、非アクティブプロジェクト、と判別する事が出来ます。全体を見渡すとこんな感じ。アクティブプロジェクトを切り替えたい場合はこの場合の例で言うと、「ProjectGroup1」直下の「Project1.exe」又は「Project2.exe」をダブルクリックするか、それを右クリックし、右クリックメニューを出して、「アクティブ化」を押します。コメントは受け付けていません。以下の画面が表示されます。以下の種類のアプリケーションを作成できます。AndroidサービスWindowsで言うところの「常駐アプリ」の様なものです。見た目(ユーザーインターフェース又は画面)が無く、ずっと実行され続ける(バックグラウンドで動くとも言います)性質のアプリです。それを作る事が出来ます。Serviceを新規作成した時の画面。見た目が無いので、フォームも当然表示されません。Monkeyコンポーネントを使って、Windows8の見た目や動きにそっくりなアプリケーションを作る(Windows8のルックアンドフィールに準拠している、とも言います)事が出来ます。この機能の面白い点として、Windows8以外のWindowsであっても、Windows8の見た目になります。UIアプリケーションDelphiの伝統的なVCLコンポーネントを使って、Windows8の見た目や動きにそっくりなアプリケーションを作る事が出来ます。(Windows8のルックアンドフィールに準拠している、とも言います)この機能の面白い点として、Windows8以外のWindowsであっても、Windows8の見た目になります。VCLフォームアプリケーションDelphiの伝統的なアプリケーションを作る手法。初代Delphiから脈々と続く手法であるため、過去に発売されたDelphiの書籍やインターネット上の過去の資産を活用しやすいのが特徴。このVCLは初代から現在のバージョンに至るまで、様々な改良や修正が加えられているので、過去のバージョンがそのまま直ぐに動くとは限りません。(余談ではありますが、これは他の言語にも言える事で、Delphiに限った事ではなく、セキュリティ上の対策や、機能向上の為に変更や改良、廃止があることは、珍しいことではありません)MDIアプリケーション論より証拠で、見た方が理解は早いと思います。下の画面を見てください。背景はDelphi、前面はMDIアプリケーションを新規作成して、実行したところです。因みに、一行も書いていないし、何の設定もいじっていません。これだけの事が出来ます。この画面まで、まっさらなフォームからも作れますが、時間は当然消費するし、最初からあるのなら、当たり前ですが使った方がいいです。勉強の為なら、このまっさらのMDIを調べて、自分で再現してみると、初歩のうちは大変勉強になります。SDIアプリケーションこれも論より証拠で、見た方が理解は早いと思います。下の画面を見てください。最初から、コンポーネントが配置してあり、お膳立てがされてあります。MDIの時程至れり尽くせりではないですが、この後やることは、フォームを新規に追加して、フォームを呼び出す処理を書いてあげるだけでいいのです。最初は、SDIから入るのは難しいかもしれないでしょう。お膳立てされたMDIをマスターして、そのMDIを再現できるようになり、意味も理解出来たら、SDIに進むといいでしょう。すれば、お膳立ての効いたDelphiの良さが判る様になると思います。コンソールアプリケーション下の画面を説明していきます。以下のプログラムの文(命令文)を書きました。実行したのが、下記の画面です。World!」と表示されていると思います。これがコンソールアプリケーションというものです。このコンソールアプリケーションには、特に意識してコードを書かない限り、オブジェクト指向ではなく、それ以前の時代の書き方になります。上から始まって、下に流れ、一番最後の命令文が終わると、有無を言わさず、アプリケーションは終了してしまいます。この例でいうと、「sleep(50000);」が実行され、50000マイクロ秒経過したら、アプリケーションは終了してしまいます。それがコンソールアプリケーションが持つ、他のアプリケーションとの最大の違いであり、特徴です。//※「Hello,World!」を表示して改行してね。//※50000マイクロ秒待機してね。コントロールパネルアプリケーションこれはちょっと特殊かもしれません。平たく書くと、コントロールパネルの機能を作ります。初心者向けでは確実にないです。画面はコントロールパネルアプリケーションの初期状態のコードエディタの画面です。サービスアプリケーションバックグラウンドで(常駐して継続的に)実行されるアプリケーションを作成します。ダイナミックリンクライブラリダイナミックリンクライブラリ(DLL)を作ります。これ単体は実行可能アプリケーションではなく、拡張子も.dllになります。「ダイナミック」に、アプリケーションに「リンク」する「ライブラリ」と考えると分り易いかも。アプリケーションの機能を拡張出来るライブラリを作れます。パッケージコンポーネントをパッケージにします。作るよりも、恐らく使う事の方が多いかもしれません。今はそういう機能もある、といった程度に捉えて置くだけでいいかと思います。コントールパネルアプリケーション、サービスアプリケーション、ダイナミックリンクライブラリ、パッケージ、が作れるようになったら、立派な上級者の仲間入りでしょう。ある意味、XE2以降のDelphiの最大の売りといっても過言ではないでしょう。個人的意見で恐縮ではありますが、プライベートで使うならば、使わなければ損!と思っております。その最大の売りは、ユニークで個性的なコンポーネント群と美しくそして非常に強力な描画機能を持っている点でしょう。Monkeyの特筆すべき点はマルチデバイス対応もさることながら、「Shapes」グループ等に属する、風変わりで、そして強力なコンポーネント達です。Monkeyは、VCLとは全く異なるアーキテクチャの様です。その顕著な証明として、2Dグラフィックスアプリケーションを、いとも簡単に作れてしまう事です。それもコーディング作業、つまりコードを殆ど書く事もなく(!)。これは驚異的なことであると考えております。Delphiは、C++と同列に分類できる、ネイティブコンパイラ(ソースコードをアプリケーションに変換すると、コンピュータが理解し易い機械語に翻訳され、高速に動作する仕組みのアプリの事)です。統合開発環境でもあり、潤沢な機能とコンポーネントを搭載しています。そこに非常に高機能な2Dや3Dの開発機能が(しかも標準で)備わっているのです。コメントは受け付けていません。木曜日Delphi開発の手法Delphiでは、コードの記述とビジュアルプログラミングと呼ばれる手法を組み合わせて開発を行います。ビジュアルプログラミングとは?➀ボタンやテキスト等のコンポーネントをマウス操作によってフォームに配置してプログラムを作成する手法。➁最初からプログラムの流れを記述していくのではなく、ユーザーのインターフェースを設計し、それを構成するコンポーネントに行われた操作に対して、どの様な処理を実行するのか定義していく。基本的にはコーディングが必要になるのは、イベントが発生した時に呼び出される。イベントハンドラへの処理を記述するだけとなる。Delphi開発の手順Delphiでの開発手法を纏めると、次の様になる。コメントは受け付けていません。木曜日DelphiプロジェクトについてプロジェクトDelphiの開発はプロジェクト単位で進めていく形になっています。プロジェクトとは一つのプログラムの開発に必要な複数の要素を管理する単位で、一つのプロジェクトが一つのプログラムとなります。プロジェクトグループその名の通り、プロジェクトが複数集まったものです。Dlephiプロジェクトのファイルの種類Delphiプロジェクトファイルの構成は以下になります。「プロジェクト名.dprproj」及び「プロジェクト名.dpr」Delphiで開発するアプリのプロジェクトです。(このファイルを開いてアプリを開発します)「プロジェクト名」はそのままアプリの名前になります。慎重に命名しましょう。「ユニット名.dfm(又は.fmx)」及び「ユニット名.pas」この二つのファイルは対になっていると考えた方が良いでしょう。「.dfm(又は.fmx)」はフォーム(ウインドウ画面)を、「.pas」はそこに記述したソースコードが収まっています。フォームを持たないユニット(ウインドウ画面の無い)を新規に追加した場合、「.dfm」ファイルは生成されず、「.pas」だけが生成されます。【備考】「.dfm」VCLアプリケーションを開発した時のフォーム情報を格納したファイル。「.fmx」FireMonkeyアプリケーションを開発した時のフォーム情報を格納したファイル。「ユニット名.dcu」コンパイル済みユニットファイル。「プロジェクト名.res」リソースファイル。「プロジェクト名.local」ユーザ固有プロジェクトオプションファイル。プロジェクトオプションの情報を格納したファイル。「プロジェクト名.exe」Delphi構築し生成されたアプリケーションです。「\Win32\debug\」ビルド時や実行時、デバッグ時に生成され、フォルダに格納されます。Delphi開発の要素デフォルトプロジェクトの場合、下記の様にファイルが作成され、それぞれ名前が付けられています。「プロジェクト名.dproj」プロジェクトファイル(新)。「プロジェクト名.dpr」プロジェクトファイル(旧)。プロジェクトの管理及び、プロジェクトのメインプログラムになります。「プロジェクト名.res」リソースファイル。「ユニット名.dfm(又は.fmx)」フォームのプロパティ等の情報が詰まったファイル。コメントは受け付けていません。Editionのインストーラをダウンロードします。Edition」と入力し検索します。URLは以下になります。Edition」のダウンロードページ初めて登録する場合、以下の情報を入力する必要があります。登録ID(メールアドレス)パスワードを入力します。「私はロボットではありません」を押すと、画像が出て生きて質問をしてくるので、その質問に答えます。正解出来たならば、「今すぐダウンロード」を押します。ダウンロードが完了したら、ダウンロードフォルダを開くか、ブラウザ上からダウンロードアイコンダブルクリックして、インストーラーを起動させます。「プライバシーに関する声明」を読んだら、「同意する」を押して次に進みます。「製品のシリアルナンバーを既に入手している」を押します。トライアル版を選択してしまうと、コミュニティエディションではなく、トライアル版がインストールされてしまいます。間違えた場合は、一旦アンインストールして、もう一度、インストールし直しましょう。Editionの場合、シリアルナンバーだけの入力で大丈夫です。シリアルナンバーが記されたメールが、エンバカデロから届いているので、それを開いてシリアルナンバーを取得します。再インストールの場合、3回インストールを行うと、登録回数の上限に達してしまう。これは、不正コピー防止の為のライセンス保護の為にそのような制約があるようです。翌営業日には登録回数が回復し、登録する事が出来ます。再インストールする際、使用許諾ライセンスの更新は以下のページになります。Editionは、他のどのバージョン(のプロフェッショナル版以上)とも、共存する事が出来ない。Editionを諦めるかのどちらかしか選択肢がありません。Edition認証を行います。以上で、インストールは終了です。コメントは受け付けていません。10.2」を選択します。Windows7であればスタートメニューの検索ボックスから、Windows10であればColtanaから「Delphi」と入力してEnterを押します。するとDelphiが起動する筈です。初期起動画面ではテーマを選択できます。最近の流れでTokyoから、目に優しいとされるダーク調の外観が採用され、選択する事が出来る様になりました。これは後から変更する事も出来ます。ツール→オプション→テーママネージャからライトかダークを選択する事が出来、カスタムで独自の設定も出来ます。終了する場合は、タスクバーの×ボタンをクリックするか、ファイルメニューの「終了」をクリックします。プロジェクトを編集中だった場合、保存するかを聞いてくるので保存する必要があれば(何か作品を作っている途中であれば)、「はい」をクリックし、ファイル名を付けて保存します。一度保存されていれば上書き保存されます。「ダーク」テーマを設定したところ「ライト」テーマを設定したところDelphi統合開発環境Delphiは統合開発環境(IDE)と呼ばれる膨大で潤沢な機能を惜しみなく詰め込んだ高機能な開発環境です。その機能の多くは、初めて触られる方や他の開発環境から移行した方には、余りに膨大だったり機能が全く異なったりで戸惑う事でしょう。Studio、その他のIDEを使い込んでいても、はじめからその全てを使いこなせる人は、そうそういないでしょう。問題は、如何に慣れ、如何に覚えるかです。「編集」メニュー:フォーム上のコンポーネントや、ソースコードの編集作業時に使います。「検索」:ソースコードやファイルの検索の際に使います。「表示」:IDEの機能の表示/非表示を操作する時に使います。「リファクタリング」:リファクタリングに関する操作を行うときに使います。「プロジェクト」:プロジェクトの操作(プロジェクトへの追加/削除、コンパイル、ビルド等)の際に使います。「実行」:プロジェクトの実行やデバッグ、デバッグ操作の時に使います。「コンポーネント」:コンポーネントの作成や追加、インポート(機能の取込)等に使います。「ツール」:IDEの機能を操作する時に使います。「ウインドウ」:レイアウトが「クラシックレイアウト」の時に、ウインドウを操作します。「ヘルプ」:ヘルプとライセンス管理、バージョン情報について表示します。ツールパレットツールパレットには沢山のコンポーネントが登録されています。機能別に登録されており、コンポーネントをダブルクリックするか、ドラッグアンドドロップをしてフォームの任意の場所に配置し、外観を作っていきます。ツールバー(スピードバー)ツールバーには、メニューにある、頻繁に使用する機能が登録されています。ツールバーのアイコンの上にマウスカーソルを移すと、簡単なツールチップヘルプが表示されます。フォームアプリケーションを作成する上で土台となるフォーム(ウィンドウ)です。このフォーム上にコンポーネントを配置して、外観を設計していきます。このフォームと呼ばれるウインドウは、通常のウインドウと同じく、マウス操作でサイズを変更出来ます。フォームのプロパティを変更する事でダイアログ等のウインドウに変える事も出来ます。プロジェクトの新規作成時は、一つのまっさらなフォームが表示されます。フォームは、任意でプロジェクトに追加していくことが出来ます。フォームは上部のタブをクリックして切り替える事が出来ます。コードエディタプログラムのコードを記述するウインドウ。イベントハンドラと呼ばれる動作に対するイベントを作成(フォームやコンポーネントのダブルクリック、オブジェクトインスペクタと呼ばれるIDEの機能からの操作で作成できます)することで、自動的にコードエディタ(コードが表示されるウインドウ)が前面に表示される。フォーム同様、上部のタブをクリックして、ページ(ユニット)を切り替える事が出来る。ページ(ユニット)とウインドウ(フォーム)の切り替えは、IDE下部真ん中の「コード」/「デザイン」をクリックする事で、切り替える事が出来ます。オブジェクトインスペクタコンポーネントやフォームのプロパティの設定、イベントハンドラの作成を行うウインドウ。プロパティはコンポーネントの各プロパティにより、Bool(TrueかFalse)、文字列(String)や文章(List)、数値等、様々なタイプがある。入力方法は、そのタイプによって自動的に変化し、選択したり、入力したりと、プロパティによって変わってくる。コメントは受け付けていません。Pascal」を使った実践的プログラミングに入っていきます。Delphiプログラミングは大変奥が深く、仮に本章ですべての機能を網羅した場合、プロフェッショナル向けでこそあっても、初心者には到底理解し難い内容になってしまいます。そこで本章では、基礎の基礎を押さえた初歩的なプログラムを作ります。第2章で作ったメモ帳をベースに幾分機能を拡張したメモ帳を作ります。それでは始めましょう。ソースコードの構造化を説明していきましょう。第2章の計算プログラムは保存せずに閉じてしまって構いません。その他」をクリックし、新規作成の際のダイアログを表示します。ダイアログ上でvclフォームアプリケーションを選択します。次に、プロジェクトマネージャーから「新規プロジェクトを追加」ボタンを押します。「マルチデバイスアプリケーション」を選択します。これで準備は整いました。説明に入っていきます。アプリケーションからです。unit1.pasをダブルクリックし、Unit1にフォーカスを移します。Unit1;unitキーワードの後ろにユニット名を記述します。このユニット名はファイル名になりますが、自動的に設定されるため、手動で変更する必要は先ずありません。Interfaceインターフェース部と読みます。各種の定義と宣言を記述します。直接のプログラムコード(実行部分)は記述できません。Usesファイル内で利用する、クラスを記述します。ここで言うクラスとはDelphiの関数やライブラリが記述された独立したファイルであり、別名「クラスライブラリ」とも呼びます。多くの場合、ここには自動でクラスが登録されていきます。手動で変更する必要がある場合は開発者(つまりあなた)が直接Delphiの機能を呼び出す場合などです。Type型の定義を記述します。型名=型の定義、といった形で型を定義していきます。宣言とはプライベートの空間という意味です。この例で言うと、Unit1.pas内部でのみ使えます。外部のユニット、つまり、Unit2等はUnit1のプライベートに立ち入ることはできません。2は参照する事は出来ません。宣言は文字通りパブリックな空間という意味です。当然ながら、パブリックは公共という意味ですので、ここに書かれた宣言はプロジェクト全体で共有されます。注意が必要なのは宣言の管理です。ここで書かれた宣言は「グローバル」な宣言になります。プライベートであれ、パブリックであれ、ユニット内もしくはプロジェクト内で共有されます。いった現象が起きます。これはグローバル変数を多数宣言することにより、似たような名前、似たような機能の変数が宣言されることにより、変数管理が難しくなる現象のこと指します。そのため、無用のグローバル変数はなるべく避けた方が賢明でしょう。var変数の宣言を記述します。これは大変よく使いますので、必ず覚えましょう。Implementation「実装部」とも呼びます。関数や手続きなどの処理を記述します。型の定義や変数宣言を行うこともできます。Initialization{初期化部}この初期化部に記述されたコードはプログラム開始自動的に実行されます。このコードは省略可能なため、使用時には宣言を入力する必要があります。ソースコードの一番下、「end.」の上に記述します。Finalization{終了処理部}この終了処理部に記述されたコードはプログラム終了直前に実行されます。このコードは省略可能なため、使用時には専念を入力する必要があります。ソースコードの一番下、「end.」の上に記述します。この記号がないと、リンカがフォームファイル(*.dfm)を見つけられなくなってしまいます。一つの宣言や処理を行う単位となります。ちなみに、この1行当たりの文の事をステップと呼びます。文には大文字、小文字の区別はありません。囲まれた範囲のことを指します。特徴として、複数の処理をまとめることができます。このブロックとは処理のまとまりを示します。コメントソースコード注釈のことを指します。コメントの種類には、//1ステップをコメント化します。全てコメントとなります。全てコメントとなります。}end.ソースコードの終端記号です。この記号より先にはソースコードがあってはいけません。下にあるunit2.pasをダブルクリックし、フォーカスを映します。Monkeyアプリケーションも、基本的な構文は同じです。