Delphi(Win32)の過去のデベロッパーキャンプの資料

先日「過去のデベロッパーキャンプの資料ダウンロードのページ」を調べた。

その中でDelphi(Win32)の技術的な記事をまとめた。
Delphiの学習に活用したい。

  • 第2回デベロッパーキャンプ – 資料ダウンロード
    • チュートリアルセッション#2「Java, Delphi, C++Builderユーザのためのメモリリーク, ボトルネックの検出手順」
    • テクニカルセッション#2「Delphi / C++Builderユーザーのためのオープンソースコンポーネントを使ったDBアクセス」
    • テクニカルセッション「オープンソースを利用した3層C/Sシステムの構築方法」
  • 第3回デベロッパーキャンプ – 資料ダウンロード
    • 【A2】Delphiテクニカルセッション「InstantObjects 2.0によるWin32モデルドリブン開発」
    • 【B5】Delphiテクニカルセッション「BDS 2006でQuickReport 4を使う」
  • 第4回デベロッパーキャンプ – 資料ダウンロード
    • 【A1】Delphiテクニカルセッション「Delphi高速グラフィック処理テクニック」
    • 【B1】Delphiケーススタディ「Delphi/IntraWebを使用したお客様向けメンテナンスサービスポータルの構築~経営戦略に機敏に対応できる情報システム部門の確立」
    • 【A2】Delphi/C++Builderテクニカルセッション「一歩前へ!知って得するDBアプリの環境改善」
    • 【G4】テクノロジープレビュー「「Delphi 2007 for Win32によるWindows Vista対応」
  • 第5回 CodeGearデベロッパーキャンプ – 資料ダウンロード
    • 【A3】Delphi/C++Builderテクニカルセッション「BDEオルタナティブ – 既存アプリの乗り換え先大全」
    • 【A5】Delphiテクニカルケーススタディ「Delphiによるビジネスロジックのリサイクル – 一粒で二度おいしいプロトタイプ転用術」
    • 【A6】Delphiテクニカルセッション「Delphi+Flashで簡単アニメーション」
  • 第6回 CodeGearデベロッパーキャンプ – 資料ダウンロード
    • 【T2】Delphiテクニカルセッション「知って得する!現役ヘルプデスクが答えるDelphiテクニカルエッセンス」
    • 【T4】Delphiテクニカルセッション「Delphi 2007の新機能とマイグレーションのポイント」
  • 第7回 CodeGearデベロッパーキャンプ – 資料ダウンロード
    • 【A4】Delphi/C++Builderテクニカルセッション「Delphi⇔C++Builder相互移植テクニック」
    • 【A6】Delphiテクニカルセッション「RTLソースを利用するDelphiデバッグ技法」
    • 【G7】BOF – ナイトセッション「Delphi Hour in Tokyo」
  • 第8回 CodeGearデベロッパーキャンプ – 資料ダウンロード
    • 【A4】Delphiテクニカルセッション「 RAD Studio 2007 による Web アプリケーション実装の基本テクニック」
    • 【A5】Delphi/C++Builderテクニカルセッション「知って得する!現役ヘルプデスクが答える Delphi テクニカルエッセンス 2.0 」
    • 【A6】Delphi/C++Builderテクニカルセッション「RAD Studio x DBX4 によるデータベース接続」
  • 第9回 CodeGearデベロッパーキャンプ – 資料ダウンロード
    • 【A2】Delphi / C++Builderテクニカルセッション「VCLから Excelにアクセス」
    • 【A3】Delphi / C++Builderテクニカルセッション「VCLネットワークプログラミング – Indyの基礎」
    • 【T2】Delphi チュートリアルセッション「『Delphi はじめて奮戦記』で学ぶDelphiチュートリアル」
  • 第10回 エンバカデロ・デベロッパーキャンプ – 資料ダウンロード
    • 【A4】Delphi/C++テクニカルセッション「Delphi 2009 / C++Builder 2009最新情報」
    • 【B4】Delphi/C++テクニカル/テクノロジートレンド「Delphi/C++Builderで実践する並列プログラミング──マルチコアからクラスタへ」
    • 【A5】Delphiテクニカルセッション「知って得する!現役ヘルプデスクが答えるDelphiテクニカルエッセンス3.0」
    • 【T4】Delphi/C++テクニカルセッション「Delphi 2009 / C++Builder 2009最新情報」
    • 【T5】Delphiテクニカルセッション「知って得する!現役ヘルプデスクが答えるDelphiテクニカルエッセンス3.0」
    • 【T6】ケーススタディ「業務管理システム開発の実例にみる3層スタイルC/Sアプリ作成術」
  • 第11回 エンバカデロ・デベロッパーキャンプ – 資料ダウンロード
    • 【A2】Delphiテクニカルセッション「Delphiでのマルチスレッドプログラミング」
    • 【A3】Delphi/C++テクニカルセッション「単層から多層アーキテクチャへの遷移 – dbExpressと DataSnap 2009を利用するデータベースアプリケーションの実装とは」
    • 【A4】Delphi/C++テクニカルセッション「開発効率を飛躍的に高めるコンポーネント自作テク ニック」
    • 【A5】Delphi/C++テクニカルセッション「Delphi/C++Builder オープンソースコンポーネント実践活用法 – 主要コンポーネントの紹介からJEDI Visual Component Libraryの 活用まで」
    • 【A6】Delphiテクニカルセッション「Delphi 2009ではじめるUnicodeアプリケーション – 既存コード移行のポイント」
  • 第12回 エンバカデロ・デベロッパーキャンプ – 資料ダウンロード
    • 【A3】Delphi/C++テクニカルセッション「dbGridのワナ」
    • 【A5】Delphiテクニカルセッション「VCL で紐解く Win32 API 入門」
  • 第13回 エンバカデロ・デベロッパーキャンプ – 資料ダウンロード
    • 【A2】Delphi/C++テクニカルセッション「Delphi/C++ DB総ざらい」
    • 【A4】Delphiテクニカルセッション/ケーススタディ「カスタムコンポーネントによる画面レイ アウト、フォーカス制御のコーディング/マウス レス化に挑戦」
    • 【A5】Delphiテクニカルセッション「Delphiコーディングスタイル バトルトーク」
  • 第14回 エンバカデロ・デベロッパーキャンプ – 資料ダウンロード
    • 【T3】Delphi/C++テクニカルセッション「Delphi/C++ DB総ざらい」
    • 【T5】Delphi/C++テクニカルセッション「今さら聞けない(?!)ポインター再入門」
    • 【T6】Delphiテクニカルセッション「知って得する!現役ヘルプデスクが答えるDelphiテクニカルエッセンス4.0」
    • 【T7】Delphi/C++Builderテクニカルセッション「マイコンポーネント大全」
  • 第15回 エンバカデロ・デベロッパーキャンプ – 資料ダウンロード
    • 【B4】ケーススタディ「Delphiでつくる!3DVRシミュレーション」 ~VR-Studio?, UC-win/Road, UC-win/Road SDK~
    • 【A5】Delphi/C++テクニカルセッション「詳説!DataSnap 2010」
    • 【B6】Delphiテクニカルセッション「Delphi 2010 で探る! Windows 7 新機能」
  • 第16回エンバカデロ・デベロッパーキャンプ – 資料ダウンロード
    • 【1C】Delphiチュートリアルセッション「Delphi 7ユーザと初心者のためのDelphi 2010入門」
    • 【1E】Delphiテクニカルセッション「Delphiでの文字コードのハンドリングについて」
    • 【2A】Delphiテクニカルセッション「Delphi2010 言語の新機能」
    • 【2B】テクニカルセッション「ソフトウェア・アーキオロジー – もしあなたが100万行のコードを引き継ぐことになったらどうしますか?」
    • 【2C】Delphi/C++テクニカルセッション「正しいGUIの作り方 – 重い処理でGUIが固まるのを防ぐ」
    • 【2D】スペシャルスポンサーセッション「Delphi, UC-win/Road SDKによるVRアプリケーション開発事例」
    • 【2E】Delphiコミュニティセッション「インストーラ対決一本勝負!」
    • 【2F】Delphiテクニカルセッション「Delphiでキカイを制御する – アプリケーションの設計とテクニック」
  • 第17回 エンバカデロ・デベロッパーキャンプ – セッション資料ダウンロード
    • 【A2】 Delphi/C++Builder/RadPHPテクニカルセッション「次期Delphi, C++Builder詳説 – いよいよ登場!RAD Studio XEの新機能」
    • 【B2】 Delphi/C++Builderテクニカルセッション「続・Delphi / C++Builderオープンソースコンポーネント実践活用法」
    • 【A3】 Delphi/C++Builderテクニカルセッション「旧Delphiで作成されたアプリケーションをDelphi 2010に移行するには」
    • 【B3】 Delphi/C++Builderテクニカルセッション「Windowsサービスアプリケーションの作成と連携アプリケーションへの応用」
    • 【A4】 Delphi/C++Builderテクニカルセッション「SJISからUnicodeへ!マイグレーションテクニック」
    • 【B5】Delphi/C++Builderテクニカルセッション「知って得する!現役ヘルプデスクが答えるDelphiテクニカルエッセンス 5.0」
  • 第18回 エンバカデロ・デベロッパーキャンプ – セッション資料ダウンロード
    • 【T2】データベースアプリケーション開発 「アプリケーション開発者のためのDBべからず集からパフォーマンスチューニングまで」
    • 【T4】Q&Aセッション 「開発者の疑問に答える!徹底Q&A」
    • 【T5】Delphiテクニカルセッション 「Delphi言語『再』入門 – ビギナーからエキスパートまで!意外と知らない言語機能や落とし穴 」
    • 【T6】ライトニングトーク 「共有!みんなの開発事例、開発経験、テクニック 」
  • 第19回 エンバカデロ・デベロッパーキャンプ – セッション資料ダウンロード
    • 【G2】テクノロジープレビュー 「64bitコンパイラへの道~Delphi/C++Builderの将来バージョン へ」
    • 【T3】 Delphiテクニカルセッション 「Delphi IDEでTwitter生活!Open Tools APIで開発環境を簡単カスタマイズ」
    • 【T5】 Delphi/C++Builderテクニカルセッション 「バグを生まないための開発技法 – テストと例外の使い方」
    • 【S4】 テクニカルセッション 「Delphi/C++Builder XE徹底活用~新規開発から移行プロジェクトまで」
    • 【S4】 テクニカルセッション 「現役ヘルプデスクが教えるDelphi活用のポイント」
  • 第20回 エンバカデロ・デベロッパーキャンプ – セッション資料ダウンロード
    • 【G2】ジェネラルセッション 「RAD Studio次期バージョンの概要」
    • 【A3】 Delphi/C++Builderテクニカルセッション 「Delphi/C++Builder新バージョンDeep Dive」
    • 【B4】 Delphi/C++Builderテクニカルセッション 「dbExpressとマルチプラットフォーム開発」
    • 【A5】 Delphi/C++Builderテクニカルセッション 「RAD Studio XE2によるクロスプラットフォーム開発」
  • 第21回 エンバカデロ・デベロッパーキャンプ – セッション資料ダウンロード
    • 【T2】テクニカルセッション 「実践!Delphiデバッグテクニック」
    • 【T3】テクニカルセッション 「Delphi/C++Builder + FastReportで作る実用レポート出力」
    • 【T4】テクニカルセッション 「FireMonkeyファーストインプレッション」
    • 【W5】 ワークショップ 「FireMonkeyアプリケーション構築実習」
    • 【W6】ワークショップ 「挑戦!Delphiクイズで実力チェック」
    • 【T8】テクニカルセッション 「Delphi言語再入門」
    • 【T9】テクニカルセッション 「Delphi/C++BuilderでiOS/Macアプリを作ろう!」
  • 第22回 エンバカデロ・デベロッパーキャンプ – セッション資料ダウンロード
    • 【T3】Delphi/C++Builder テクニカルセッション 「FireMonkey道場」
    • 【T4】Delphi/C++Builderテクニカルセッション 「アプリの肥大化、チームメンバーの増大など!プロジェクトの拡大にRAD環境でどう対応するか?」
    • 【W4】 Delphi/C++Builderワークショップ 「FireMonkey虎の穴」
    • 【A5】Q&A セッション 「何でも質問!アスク・エンバカデロ」
    • 【G6】 ライトニングトーク 「共有!みんなの開発事例、開発経験、テクニック」
  • 第23回 エンバカデロ・デベロッパーキャンプ – セッション資料ダウンロード
    • 【A1】 Delphiテクニカルセッション 「Delphi 2009 Handbook以降のDelphi言語新機能」
    • 【B2】 Delphiテクニカルセッション 「見た目で楽しいDelphiプログラミング」
    • 【G3】Delphi/C++Builderテクニカルセッション 「RAD Studio 次期バージョンの概要」
    • 【A4】 Delphiテクニカルセッション 「Delphi+IntraWeb+FastReportによるWeb、モバイル、タブレットアプリ開発」
    • 【A5】 Delphi/C++Builderテクニカルセッション 「RAD Studio次期バージョンの新機能」
    • 【B5】 Delphi/C++Builderセッション 「FireMonkeyモバイル/タブレットアプリ開発」
    • 【G6】 ライトニングトーク 「共有!みんなの開発事例、開発経験、テクニック」

抜けている資料があったら、教えてください。

2012年8月12日 追記:公式サイトにもデベロッパーキャンプの資料をまとめたページができました。

過去のデベロッパーキャンプの資料ダウンロードのページ

過去のデベロッパーキャンプの資料ダウンロードのページ。

Delphi/C++Builderを学ぶ上で、貴重な情報源です。
レベルも高い。

追記

公式サイトにも過去のデベロッパーキャンプのまとめページができました。

Delphiのメソッドをメソッド名から実行する方法

Delphiのメソッドをメソッド名から実行する方法。

元ネタは「Execute a Delphi Method (Procedure/Function) by Name」より。
ヘルプの「System.TObject.MethodAddress」にも同じことが書かれていました。

次のような関数を用意します。

procedure ExecMethod(OnObject: TObject; MethodName: string);
type
  TExec = procedure of object;
var
  Routine: TMethod;
  Exec: TExec;
begin
  Routine.Data := Pointer(OnObject);
  Routine.Code := OnObject.MethodAddress(MethodName);
  if NOT Assigned(Routine.Code) then Exit;
  Exec := TExec(Routine);
  Exec;
end;

あとはこの関数を使って、目的のメソッドを実行します。

# Form1.Button1Clickを実行する
ExecMethod(Form1, 'Button1Click');

追記

実行できるメソッドは可視性がpublishedでなければならないようです。

DELPHI 2009 HANDBOOK

DELPHI 2009 HANDBOOKを読みました。
この本を読むまでは、Delphi2009はDelphi2007からUnicodeのサポートと小さな修正が行われただけだと思っていました。
実際には、多くの新しい機能が追加された優れた開発環境だったことがわかりました。

DELPHI 2009 HANDBOOKは、Delphi 2007 HANDBOOK(日本語未翻訳)の続編という位置づけになっています。
そのため、本書の内容はDelphi2009の新機能と変更点に絞られています。
Delphi2009で新たに追加された機能だけで400ページ以上の本になったわけです。

本書のターゲットは、旧バージョンのDelphiからDelphi2009へ移行する開発者です。
これからDelphiを始める初心者には難しすぎると思います。
C++Builder2009ユーザーもObject Pascalの新機能以外は参考になります。

本書の内容を大きく分けると次の4つに分けられます。

  • Unicode
  • IDEの新機能
  • Object Pascalの新機能
  • VCLの新機能

Delphi2009の一番の目玉であるUnicodeについては、多くのページが割かれています。
次の3つに分けられます。

  • Unicodeについての解説
  • UnicodeString型の説明
  • 旧バージョンからの移行方法

たくさんのサンプルコードが掲載されており、実際に動作を確認しながら読み進めることができるようになっています。
サンプルコードはこちらからダウンロードできるようです。

IDEにも、いくつもの新機能が追加されています。
便利になった新しい機能を上手に使い、効率よく開発したいものです。

  • 新しく追加されたプロジェクトオプションの項目について
  • リソース管理の機能
  • ツールパレット検索ボックス
  • プロジェクトマネージャビュー
  • その他いろいろ

Object Pascalの新機能として、2つの機能が説明されています。

  • ジェネリクス
  • 無名メソッド

ジェネリクスと無名メソッドによって、Object Pascalがより生産性の高いプログラミング言語になったことがわかります。
無名メソッドはC++Builderにはない機能ですから、とても羨ましいです。

それから、242~243ページの「オーバーロードにおける変更」は注意が必要です。
特に「あるメソッドを呼び出していたコードが、以前と異なるメソッドを呼び出すようになってしまう」は気がつきにくいだけに問題です。
ただし状況が限られているので、問題を理解していれば何とかなりそうです。

VCLの新機能で説明されているコンポーネント

  • 新しいコンポーネント
    • バルーンヒント
    • ButtonedEdit
    • CategoryPanelGroup
    • Ribbon
  • コモンコントロールの新機能
    • Button
    • Label
    • RadioGroup
    • Edit
    • ComboBox
    • ListView
    • ProgressBar
    • HeaderControl
    • RichEdit

VCLの新機能ですが、4つの新しいコンポーネントとリボンのサポートに加えて、
Windows XPやWindows Vistaで追加されたコモンコントロールの新機能がサポートされました。
リボンコントロールについては、1つの章をまるまる使って説明しています。

# 古いOSで新機能を使用するとどうなるのか、検証しました。
# => C++Builder2009でコモンコントロールに追加された新機能の検証

他にも、COMサポートやdbExpress、DataSnap2009についての解説もあります。

と、盛りだくさんの内容でした。

本書では、Delphi2009の新機能・変更点に内容が絞られています。
Delphi7からDelphi2007までの間に追加された機能、例えばクラスヘルパーなどについては、説明がありません。
Delphi 2007 HANDBOOKの日本語訳も出版してほしいです。