出版社内容情報
開発者必携!Delphi拡張テクニック大公開!
本書は、コンポーネント作成に必要な基本的なテクニックから上級者向けの高度なものまで多岐に
わたって解説しています。類書には見られないデータベース対応のコンポーネント作成法、複合コン
ポーネントの作成法、XPのテーマに対応したコンポーネントの作成法など情報が満載です。
さらに、本書で使用した数々のサンプルを収録したCD-ROMを利用して、より実践的に理解すること
ができます。Delphiのコンポーネント開発の情報不足に悩まされている技術者に最適です。
●目次
Part 1 アプリケーション開発者向けのDelphiの拡張法
第1章 コンポーネントテンプレートを使う
1-1 はじめに
1-2 コンポーネントテンプレートを使ってみる
■ 単純なコンポーネントテンプレートをつくる
■ もう少し複雑なコンポーネントテンプレートの作成
1-3 コンポーネントテンプレートの秘密
1-4 コンポーネントテンプレートのテクニック
1-5 コンポーネントテンプレートはどこにあるのか?
1-6 テンプレートインポータの作成
1-7 コンポーネントテンプレートはどう使えばよいのか?
第2章 メニューテンプレートを使う
2-1 はじめに
2-2 メニューテンプレートを使ってみる
2-3 メニューテンプレートを登録する
2-4 メニューテンプレートには何がどこに記録されているのか?
2-5 メニューテンプレートはどこで使うべきか
第3章 リポジトリとプロジェクトテンプレートを使う
3-1 はじめに
3-2 リポジトリはどこに何が記録されているのか?
3-3 プロジェクトテンプレート
3-4 プロジェクトテンプレートを作る
3-5 リポジトリの編集
3-6 リポジトリとプロジェクトテンプレートをいつ使うのか?
第4章 フォームテンプレートを使う
4-1 はじめに
4-2 フォーム、データモジュール、フレーム
4-3 フォームをフォームテンプレートとして登録してみる
4-4 フォームのフォームテンプレートの使い方
4-5 フォームテンプレートはどこで使うのか?
第5章 継承とフォームテンプレートを使う
5-1 はじめに
5-2 フォームの継承
5-3 継承フォームを使ってみる
5-4 フォームテンプレートから継承フォームを作る
5-5 継承フォームの制限と問題点
5-6 フォーム継承はどこで使うか?
第6章 フレームとフォームテンプレートを使う
6-1 はじめに
6-2 フレームを使ってみる
6-3 フレームの仕組み
6-4 フレームの制限と問題点
6-5 フレームを再利用する
6-6 フレームはどこで使うのか?
Part 2 コンポーネントの開発
第7章 コンポーネントを作ってみる
7-1 キャプションが表示されないパネルを作ってみる
■ コンポーネントのユニットを作成する
■ コンポーネントのコードを作成する
■ コンポーネントをコンパイル&インストールする
■ 作成したコンポーネントを使う
7-2 トラックバーの見栄えを改良する
■ コンポーネントのコードを作成する(プロパティを追加する)
■ 新しいトラックバーコントロールを使う
7-3 まとめ
第8章 コンポーネントはどのように設計するか?
8-1 何故コンポーネントなのか?
■ プロパティストリーミング
■ 言語レベルのイベントのサポート
8-2 どのようなコンポーネントを作るべきか
8-3 コンポーネント作成で気をつけるべきこと
8-4 コンポーネントは何のために作るのか
8-5 まとめ
第9章 プロパティ、メソッド、イベントの作り方
9-1 プロパティの作り方
■ プロパティの基礎
■ 単純なプロパティを作る
■ publishedなプロパティに使える型
■ クラス型プロパティを使ってみる
9-2 メソッドの作り方
9-3 イベントの追加
9-4 仕上げ(足りない部分の追加)
■ TMemoEx4に何が足りないか?
■ 足りない機能を加える
第10章 VCLのクラス階層を知る
10-1 TPersistent
10-2 TComponent
10-3 TControl
10-4 TWinControl
10-5 TGraphicControl
10-6 TCustomControl
10-7 まとめ
第11章 TComponentを継承して非ビジュアルコンポーネントを作る
11-1 SHBrowseForFolder API
11-2 SelectFolder1コンポーネント
11-3 TSelctFolder2コンポーネントの初期フォルダの指定を可能にし、ダイアログの表示位置を適切にする
11-4 TSelectFolderコンポーネントが常にフォルダを選択できるようにする
11-5 TComponentの主要なメソッド、プロパティ
第12章 VCLのメッセージ処理の基礎を知る
12-1 ウィンドウとウィンドウコントロールの関係を知る
12-2 ウィンドウコントロールのメッセージ処理の流れを知る
12-3 まとめ
第13章 TGraphicControlを継承してコンポーネントを作る
13-1 コントロールとは?
13-2 TGraphicControl
13-3 表示専用コントロールを作る(TMeter)
■ TMeterの宣言
■ TMeterのコンストラクタの記述
■ TMeterの処理の要Paintメソッド
■ TMeterのプロパティを変更するメソッドの実装
■ SetValueメソッド
■ 仕上げ
■ まとめ
13-4 コントロールがマウス入力を扱う仕組みを知る
■ マウス関連のイベントとマウスのメッセージ
■ マウスメッセージはグラフィックコントロールでも受け取れる
■ マウスメッセージ処理の流れ
■ まとめ
13-5 マウス入力を受け取れるコントロールを作る
■ TSimpleButtonの宣言
■ コントロールを初期化する
■ マウスボタンのタイミングを捉える
■ コントロールを描画する
■ キャプションの変更に応答する
■ ニーモニックの入力に応答する
13-6 まとめ
第14章 ウィンドウコントロールのキーボードメッセージ処理を知る
14-1 キーボードメッセージ処理の基礎を知る
■ 受け取れる文字、受け取れない文字
■ キーボードメッセージ処理の流れ
14-2 ダイアログボックスシミュレーションを理解する
14-3 ダイアログシミュレーションの詳細を知る
■ キーボードメッセージ処理の流れ
■ 振り分け処理
■ フォームのダイアログボックスシミュレーション処理
■ ニーモニック文字の処理
■ ダイアログボックスミューレーションのまとめ
14-4 コントロールのキーボードメッセージ処理
14-5 ショートカット処理
14-6 まとめ
第15章 TCustomControlを継承してコンポーネントを作る
15-1 TWinControlとTCustomControl
■ TWinControlで追加されたインターフェース
■ ウィンドウを作成・破棄するメソッド
■ CreateParamsメソッド
■ CreateWnd、DestroyWndメソッドのオーバライド
■ TWinControlとTCustomControlの関係
15-2 スライダーコントロールの仕様
15-3 TSliderコントロールの宣言
15-4 TSliderコントロールのコンストラクタ
15-5 TSliderコントロールのPaintメソッド
15-6 SmallChange、LargeChange、Min、Maxプロパティの変更処理
15-7 各種メッセージへの応答とコントロールのサイズ制限
■ WM_SETFOCUS、WM_KILLFOCUSメッセージの処理
■ ニーモニック文字の処理
■ その他のメッセージ処理(CM_TEXTCHANGED、CM_ENABLEDCHANGED)
■ コントロールのサイズ制限
15-8 マウス入力の処理
15-9 キーボード入力の処理
15-10 まとめ
第16章 RTTIとプロパティストリーミングを知る
16-1 プロパティストリーミングとRTTIの関係
■ プロパティストリーミングとは?
■ RTTI(Run Time Type Information:実行時型情報)とは?
16-2 RTTIを使ってみる
16-3 プロパティ情報の使い方
■ プロパティ情報とは何か
■ 型情報を取得するには?
■ 型データの取得
■ 型データからプロパティ情報をとりだす
■ プロパティ値の取得/設定
■ プロパティ情報を使ってみる
16-4 プロパティストリーミングのデータの中身を知る
■ フォームファイルのデータ構造
■ 「ルートコンポーネント」、「入れ子コンポーネント」
■ フォームファイルの構造の詳細
16-5 コンポーネントのストリーム化と偽プロパティ
■ TReaderとTWriterクラス
■ ストリームデータの書き込み
■ 入れ子コンポーネントの書き込み
■ コンポーネントのWriteStateメソッドの役割
16-6 コンポーネントを再生する魔法の仕掛け
■ コンポーネントの型名からコンポーネントを作成する仕組み
■ OwnerとParentの決定
■ プロパティ、入れ子コンポーネントと偽プロパティの読み込み
■ コンポーネントのReadStateメソッドの役割
■ FixUp処理
16-7 プロパティストリーミングの応用
■ ReadStateをオーバライドする方法
■ 偽プロパティを使う方法
16-8 まとめ
第17章 より高度なプロパティを作成する
17-1 コレクション型のプロパティを作る(TTabbedMemoの開発)
■ コレクション型のプロパティ
■ タブ付きメモコントロールとコレクションエディタ
■ タブ付きメモコントロール(TTabbedMemo)の宣言
■ TTabPositionクラスの実装
■ TTabPositionクラスの実装
■ TTabbedMemoコントロールの実装
■ まとめ
17-2 コンポーネント間のリンクを作成する
■ リンク
■ リンクが切れたことを知る方法
■ TImageLabelの作成
17-3 サブコンポーネントを作る
■ クロックラベルコンポーネントを作る
第18章 コンポーネントのさまざまなテクニック
18-1 コントロールのサイズを制御する
■ コントロールの大きさが決まる仕組み
■ コントロールのサイズを制御してみる
■ まとめ
18-2 設計時にマウス入力を受け取る
■ まとめ
18-3 ドラッグイメージをサポートする
■ ドラッグ&ドロップの仕組みを知る
■ リストボックスにドラッグイメージをサポートさせる
■ まとめ
18-4 コンテナになるには?
■ コンテナとは?
■ コンテナが持っている機能
■ コンテナを作ってみる
■ まとめ
18-5 ドラッグ&ドックをサポートする
■ ドラッグ&ドックを使ってみる
■ ドラッグ&ドックの仕組み
■ コントロールをドックサイトにするには
■ ドックマネージャとは何か?
■ 標準ドックマネージャTDockTree
■ IDockManagerインターフェース
■ ドックマネージャを作ってみる
■ TDockStackを使うTStackPanelを作る
■ まとめ
18-6 複合コンポーネントを作る
■ 複合コンポーネントとの利用目的
■ 内部コンポーネントにはどんなものがあるか
■ 本節で作成する複合コンポーネントTWizardの仕様
■ TWizardとTWizardPageの宣言
■ 内部コンポーネント(タイプ(1)のパネルとボタンの作成)
■ TWizardPageの作成
■ TWizardPageのストリームへの書き込み
■ ActivePageプロパティの取り扱い
■ まとめ
第19章 プロパティエディタを作る
19-1 プロパティエディタとは何かを知る
■ プロパティエディタとは何か
■ プロパティエディタの役割
19-2 プロパティエディタを作ってみる
■ 16進表示の整数用プロパティエディタ
■ プロパティエディタのインストール
■ 追加事項
19-3 TPropertyEditorクラスを知る
19-4 ドロップダウンリストを表示するプロパティを作る
19-5 カスタム描画を行うプロパティエディタを作成する
19-6 偽プロパティを持つプロパティをプロパティエディタで扱う
■ TTabbedMemoExを作成する
■ TTabsクラスの実装
■ TTabbedMemoExクラスの実装
■ Tabsプロパティ用のプロパティエディタTTabsProperty
19-7 プロパティエディタのまとめ
第20章 コンポーネントエディタを作る
20-1 コンポーネントエディタとは何か?
20-2 コンポーネントエディタの作る
20-3 デフォルトプロパティエディタを使う
20-4 まとめ
第21章 データベース対応コンポーネントを作る
21-1 データリンクを知る
21-2 TFieldDataLinkを知る
21-3 データ表示専用のDBコントロールを作る(TDBMeter)
21-4 データを編集できるDBコントロールを作る(TDBSlider)
21-5 まとめ
第22章 アクションコンポーネント
22-1 アクションコンポーネントを知る
■ アクションを使ってみる
■ プロパティとイベントの集中化
■ アクションの効用
■ アクションが更新される契機
■ アクションのOnExecuteイベントの実行
22-2 コンポーネントをアクションクライアントにする
■ TSimpleButtonをアクションに対応させる
■ アクションに対応したTLabelの作成
■ TImageLabelをアクションに対応させる
22-3 標準アクションの使い方
■ 標準アクションを使ってみる
■ アクションのもう1つの顔
■ アクションの処理対象オブジェクトの探索
22-4 標準アクションコンポーネントを作成する
■ リスト項目編集用アクション群の実装
■ アクションのインストール
22-5 まとめ
第23章 XPテーマをサポートコントロールを作成する
23-1 XPのテーマとは?
23-2 ビジュアルスタイルとは何か?
23-3 TSimpleButtonをビジュアルスタイルに対応させる
23-4 まとめ
巻末資料
■ ComponentStyle一覧
■ ComponentState一覧
■ ControlStyle一覧
■ ControlState一覧
■ コンポーネントメッセージ一覧
■ Delphi付属のプロパティエディタ一覧(主要な4ユニットのみ)
■ TFilerの主要なプロパティ
■ TWriterの主要なプロパティとメソッド
■ TReaderの主要なプロパティとメソッド
■ コンポーネントの格言一覧
■ コンポーネントのルール一覧
■ コンポーネントのTips一覧
■ コンポーネントの常識一覧
内容説明
本書は、Delphiの持つ可能性を広げる技術的価値の高い参考書です。Delphiには豊富なコンポーネントが搭載されており、これらを活用して効率的にアプリケーションを開発できます。が、それぞれの業務アプリケーションではより専門的なカスタムコンポーネントを必要とするケースもたくさんあります。本書は、こうしたカスタムコンポーネントの開発を計画している技術者には必携の書です。
目次
1 アプリケーション開発者向けのDelphiの拡張法(コンポーネントテンプレートを使う;メニューテンプレートを使う;リポジトリとプロジェクトテンプレートを使う;フォームテンプレートを使う ほか)
2 コンポーネントの開発(コンポーネントを作ってみる;コンポーネントはどのように設計するか?;プロパティ、メソッド、イベントの作り方;VCLのクラス階層を知る ほか)
著者等紹介
中村拓男[ナカムラタクオ]
大学卒業後、NECにてNTT向けのグラフィック情報入力装置を担当。超小型地球局(VSAT)システムの開発にも従事する。現在、株式会社ブレーンに勤務
※書籍に掲載されている著者及び編者、訳者、監修者、イラストレーターなどの紹介情報です。
感想・レビュー
-
- 和書
- 独眼竜政宗 〈第1巻〉