第33回 エンバカデロ・デベロッパーキャンプ・イン東京 B1 & 大阪 T1 サマリー [JAPAN]

Posted by on in Blogs

◆◇◆デベロッパーキャンプサマリー◆◇◆

  • 東京【B1】Delphi/C++チュートリアルセッション 「Starterから始めるビジュアル開発実践法」
  • 大阪【T1】Delphi/C++チュートリアルセッション 「Starterから始めるビジュアル開発入門 - その意義と実践手法」

当記事は第33回 エンバカデロ・デベロッパーキャンプにおいて、2016年12月9日(金)に 東京にて行われた 【B1】Delphi/C++チュートリアルセッション 「Starterから始めるビジュアル開発実践法」 、および、 12月13日(火)に大阪にて行われた【T1】Delphi/C++チュートリアルセッション 「Starterから始めるビジュアル開発入門 - その意義と実践手法」のサマリー、関連URLなどを掲載いたします。

使用したプレゼンテーションスライドは下記よりダウンロード可能です。

デベロッパーキャンプそのもの紹介は弊社エンバカデロのWebサイトにあります。ご興味のある方は覗いてみてください。

 当日のセッション内容をビデオでご覧いただけます。


【アジェンダ】

  • エンバカデロとDelphi / C++Builder
  • Delphi / C++Builder Starter Edition
  • アカデミック
  • Starter チュートリアルシリーズ
  • 実践的ビジュアル開発

 

 統合開発環境 RAD Studio を使うメリット

  • 効率的な統合開発環境 
  • 言語習得が容易・言語ノウハウを生かせる
  • マルチデバイス・クロスプラットフォーム開発

ご紹介したTOIBE index のWebページはこちら: http://www.tiobe.com/tiobe-index/

 

Delphi / C++Builder 10.1 Starter Edition

  • Delphi / C++Builder  Starter Edition とは
    • エンバカデロが配布している無償の統合開発環境のひとつ
  • Delphi / C++Builder Starter Edition の狙い
    • ユーザーコミュニティの形成
  • Delphi / C++Builder  Starter Editionの利用範囲
    • パーソナルユースの非商用

 

アカデミック

  • 有償版アカデミックライセンス
    • 学校、学生、教員を対象とし、学習・授業で利用可能な低価格ライセンス
  • アカデミックプログラム(無償)
    • 学校、学生など、学習を目的としたクラスに無料でフル開発環境を提供

 

Starter チュートリアルシリーズ

  • コンセプト
    • 無償のStarterを使ってプログラミング、アプリ開発を学ぼう!
  • 実施期間
    • 10月24日~12月26日までの全10回、毎週月曜 17時より30分間放送
  • シーズン1の内容
    • 「 最初の一歩から始めてゲームを作ろう!」
  • 第7回まで進行
    • シューティングゲームの製作に取り掛かる
  • ユーザーのコミュニティ形成
    • いずれはコミュニティの中に入り込んでいただきたい
  • シーズン2の開催も企画

チュートリアルシリーズは下記のWebページにご登録いただくことで過去放送済分も含めすべてご視聴いただけます。

 

実践的プログラミング

Starter Editionはデータアクセスライブラリ FireDACの機能を持っておらず、データベースアクセスを行うことは大変ですが、Starterでも使用できるClientDatasetコンポーネントを使ってデータベースライク(データベースに似たような)機能を使うことができます。

[使用したコンポーネント]

  • TClientDataSet
  • TDataSource
  • TDBNasvigator
  • TDBGrid
  • Button (2個)
  • TFileOpenDialog
  • TFileSaveDialog

デモ内容としてはとても簡単なもので、上記コンポーネントを配置し、下記プロパティを設定していきます。

  • DataSource1のプロパティ[DataSet]に[ClientDataSet1]を設定
  • DBNavigator1のプロパティ[DataSource]にのプロパティ[DataSet]に[ClientDataSet1]を設定
  • DBGrid1のプロパティ[DataSource]に[のプロパティ[DataSet]に[ClientDataSet1]を設定
  • Button1 のプロパティ[Name]を[btnSave] に変更し、[Text ]に[保存]を設定
  • Button2 のプロパティ[Name]を[btnLoad] に変更し、[Text ]に[読み込み]を設定

次にClientDataSet1を右クリックして[フィールドエディタ]をクリックしてフィールドエディタを表示させます。

フィールドエディタを右クリックして「フィールドの新規作成」を選んで「フィールドの新規作成:ダイアログを開きます。この手順にて、下記4つのフィールドを作ります。

  • 名前:Name / 型: String
  • 名前:Address / 型: String
  • 名前:IsSent / 型: Boolean
  • 名前:LastmailGotDate / 型: Date

上記4つのフィールドの新規作成を終えたら、再びClientDataSet1を右クリックして「データセットの作成」をクリックします。

次に保存ボタン(btnSave)をダブルクリックして保存ボタンのonClickイベントを記述します。記載したのは下記コードです。
//Delphiコード

//Delphi 
procedure TForm3.btnSaveClick(Sender: TObject);
begin
  if FileSaveDialog1.Execute then
  ClientDataSet1.SaveToFile(FileSaveDialog1.FileName, TDataPacketFormat.dfXMLUTF8);
end;

//C++コード

//C++
void __fastcall TForm1::btnSaveClick(TObject *Sender)
{
  if (FileSaveDialog1->Execute()) {
	  ClientDataSet1->SaveToFile(FileSaveDialog1->FileName, TDataPacketFormat::dfXMLUTF8);
  }
}

 

次に読み込みボタン(btnLoad)をダブルクリックして読み込みボタンのonClickイベントを記述します。記載したのは下記コードです。

//Delphiコード

//Delphi 
procedure TForm3.btnLoadClick(Sender: TObject);
begin
  if FileOpenDialog1.Execute then
  ClientDataSet1.LoadFromFile(FileOpenDialog1.FileName);
end;

//C++コード

//C++
void __fastcall TForm1::btnLoadClick(TObject *Sender)
{
  if (FileOpenDialog1->Execute()) {
	  ClientDataSet1->LoadFromFile(FileOpenDialog1->FileName);
  }
}

 

上記コードによって、ClienDatatSet内にあるデータのファイル書き出し、読み込みが実装できました。

これで実行すれば、DBGridにデータを登録し、ボタンで保存、読み込みができるようになります。

Name とAddress は文字列で記載し、IsSent はTrue/Falseで、LastmailGotDateはyyyy/mm/dd 形式で年月日を記載します。

実際には、このようなTrue/Falseを直書きさせたり、Dataを直書きさせることはアプリの仕様上好ましくないので、選択式にしたり、入力ダイアログを別途持たせるなど細かな実装を行うべきですが、今回はTClientDataSetがローカルデータベースのように使えることを紹介することが目的ですので、細かな実装はおこなっていません。

ClientDataSetは、リモートデータベースのデータをローカルのメモリにキャッシュさせるために使われるコンポーネントですが、ここではClientDataSetが持っている機能を使って、あかたもローカルデータベースのように使えることをご紹介しています。

ただ、保存したデータはUTF8でXML を使っていますのでファイルを開いてみれば平文でデータは丸見えです。セキュリティなどは期待できませんので、そこはご承知おきください。

まとめ

  • 「あたらしいユーザーの育成に本気です」

以上です。



About
Gold User, No rank,
Sales consultant - Embarcadero Technologies , at Japan Twitter : @kazaiso

Comments

Check out more tips and tricks in this development video: