# VCL フォームと視覚的検査 - DE Decompiler

> Delphiで記述された、またはC++Builderで作成されたVCLプログラム用の専門家向け逆コンパイラ。リバースエンジニアリングやフォレンジックに向け、Win32/Win64のコード、フォーム、ユニット、クラスを解析します。

Canonical HTML: <https://www.de-decompiler.com/help/jp/forms.htm>

## VCLフォームとビジュアルインスペクション

DE DecompilerはVCLフォーム情報を逆コンパイルし、復元されたコントロールとプロパティを可視化します。

C++Builderで作成されたアプリケーションでも、同じ手順でVCLフォームを調べ、イベントハンドラへ移動できます。

1. プロジェクト・ツリーで**フォーム (Forms)**を展開し、検査するフォームを選択します。

2. **デザイナー (読み取り専用) (Designer (read only))**を開いて、復元されたビジュアルレイアウトを検査します。

3. コントロールを選択し、プロパティエリアで利用可能なプロパティと復元されたイベントエントリを確認します。

4. フォームの表現を、利用可能な**DFM**、フォーム・データ、およびHEXビューと比較します。

![再構築されたVCLフォームと、復元されたコンポーネントのプロパティ。](https://www.de-decompiler.com/image/help/de_decompiler_form_visualization_overview.png)
再構築されたVCLフォームと、復元されたコンポーネントのプロパティ。

[FRX Image Viewer](https://www.de-decompiler.com/help/jp/plugins.htm#frx-image-viewer)を使用して、登録されたフォーム画像と認識されたネイティブImageListアイコンをプレビューおよびエクスポートします。

### DFMソースとビジュアルプレビュー

**DFM**ソース・ビューは、復元されたコンポーネント・クラス名、プロパティ、およびイベント・ハンドラ識別子を保持します。構文強調表示、一致する識別子の強調表示、検索、およびコピーをサポートします。`object`、`inherited`、`inline`ブロック、コレクション項目、バイナリ・プロパティ、および文字列リストを折りたたんで、大きなフォームをナビゲートします。

**Form**タブには、ビジュアルプレビュー用に変換した内容を表示します。保存されたプロパティ値や元のコンポーネントクラス名は、復元したDFMソースで確認してください。

プレビューは、保存されたページ、メニュー、リスト、グリッドのジオメトリ、ツールバーボタンなどを再構築します。サポートされているローカルImageListのグラフィック、マスク、アルファ透過性も含まれます。サポートされているAlphaSkinsコントロールは、表示用にVCL同等のものにマッピングされますが、DFMクラス名はソースで引き続き利用可能です。解析対象アプリケーションからの描画コードやイベントコードは実行されません。

### イベントハンドラをたどる

フォーム表示で復元したコントロールまたはメニューのイベントを選択すると、そのハンドラを開けます。表示履歴で戻ると、選択したコントロール、アクティブなページ、スクロール位置を復元します。イベントの動作を調べる際は、**逆コンパイラ (Decompiler)**でプロシージャを確認し、**逆アセンブラ (Disassembler)**と照合してください。

### フォームデータとオフセット

**オフセットを表示 (Show offsets)**オプションは、フォームデータ表示に位置情報を追加します。復元されたプロパティまたは定義をバイナリ表現に関連付ける場合に使用します。

### プレビューの解釈

デザイナーは、復元されたフォームデータの検査用ビューです。元のアプリケーションが初期化コードやイベントコードを実行しているわけではありません。ランタイムで作成されたコントロールや、コードによってのみ割り当てられた値については、対応するプロシージャで調査する必要があります。

カスタムコントロールやバージョン固有の型認識は、フォームの表現方法に影響を与える可能性があります。コンポーネント、プロパティ、レイアウトが不完全に見える場合は、復元されたデータとコードを必ず確認してください。

### TMSコントロールと静止プレビュー

ビジュアルプレビューでは、認識されたTMSのラベル、ボタン、リスト、グループボックス、スライダー、スクロールバー、タブを、保存された文字列と配置に基づいて表示します。アクティビティ表示は静止プレビューとし、埋め込みWeb領域はページを読み込まずに位置を示します。
