Catalog · How the catalog works
ColorPicker
色選択ダイアログ
- ★ 1 on GitHub
Anyone may press Interesting, signed in or not. It helps others find this project.
README
ColorPicker (VCL / Delphi)
VCL(Delphi)向けに実装した シンプルかつ実用的なカラーピッカーコンポーネント一式です。
RGB 編集・Hue バー・SV エリア・スポイト(画面ピック)を組み合わせた
モーダルダイアログ形式のカラーピッカーを提供します。
スポイト機能は
画面キャプチャ + 前面フォーム方式を採用しており、
他アプリに入力を送らずに「他アプリ上の色を拾っているように見せる」動作を実現しています。
特徴
- VCL 標準コンポーネントのみで構成
- RGB / Hue / Saturation / Value をすべて操作可能
- 数値入力とマウス操作の完全同期
- 画面スポイト機能付き
- 他アプリを触らない
- 左クリックで確定
- 右クリック / ESC / 非アクティブ化で即キャンセル
- モーダルダイアログとして簡単に利用可能
- マルチモニタ非対応(意図的に単純化)
構成
コアユニット
| ユニット | 内容 |
|---|---|
ColorPickerPick |
画面キャプチャ+前面フォーム方式のスポイト |
ColorPickerHueBar |
Hue(色相)選択バー |
ColorPickerSVArea |
Saturation / Value 選択エリア |
ColorPickerRGBEditFrame |
RGB 数値入力フレーム |
UI 統合
| ユニット | 内容 |
|---|---|
ColorPickerDialogFrame |
各ピッカーを統合するフレーム |
ColorPickerDialog |
モーダル表示用のダイアログフォーム |
サンプル
| ユニット | 内容 |
|---|---|
MainForm |
使用例(Panel と色のやりとりのみ) |
使い方(基本)
uses ColorPickerDialog;
procedure TFormMain.Button1Click(Sender: TObject);
var
Form : TFormColorPickerDialog;
begin
Form := TFormColorPickerDialog.Create(nil);
try
Form.Color := Panel1.Color;
if not Form.Execute then Exit;
Panel1.Color := Form.Color;
finally
Form.Free;
end;
end;Colorプロパティに初期色を設定ExecuteがTrueの場合のみ色を反映- Cancel 時は何も変更されません
スポイト操作
| 操作 | 動作 |
|---|---|
| 左クリック | 色を確定 |
| 右クリック | キャンセル |
| ESC | キャンセル |
| フォーム非アクティブ | 即キャンセル |
※ スポイト中は画面を 静止画像として扱います
設計方針
- 実装は VCL の素直な使い方を優先
- フレームとダイアログを分離し、再利用可能な構成
- スポイトは OS フック等を使わず、安全側の設計
- 拡張よりも 安定性と分かりやすさを重視
制限事項
- マルチモニタ非対応
- スポイト中の画面更新(動画・アニメーション)は反映されません
- DPI スケーリングは環境依存(必要に応じて調整してください)
ライセンス
用途に応じて自由に利用・改変してください。
(必要であればライセンス表記を追加してください)
補足
本実装は
「スポイト機能が Windows / VCL 的に成立するか」
を確認した PoC を元に整理・統合したものです。
そのため、構造は意図的に単純で、
実アプリへの組み込みを前提としています。

