グリッドの特定列をボタンにする

第14回エンバカデロ・デベロッパーキャンプセッションT7自己フォロー(グリッドの特定列をボタンにする)より。

ボタンを上手に使っているところが参考になります。
TButtonにイベント処理を任せることで、描画処理がシンプルになっています。
実際にはもう少しコードが加わるとは思いますが。

ちなみに私も、コンポーネントを作成しない派です。

以前に使っていたフリーのコンポーネントが、IDEをバージョンアップしたら、インストールできなくなったことがあります。
当時のコンパイラに不具合があって、DelphiのコードをC++Builder用に変換するときにエラーになったのだと思います。

C++Builderは、DelphiのコードをC++Builder用に変換する作業が加わるため、Delphiよりもトラブルに遭遇する確率が高いと思います。

そのため、C++BuilderユーザーはDelphiユーザーよりも、
コンポーネントのインストールに抵抗があるのかもしれません。
# 私だけかもしれませんが。

ちょっと気になった点があります。

// テーマサービスの取得
TThemeServices* pTheme = ThemeServices();
if (pTheme) {
  // テーマが有効

とありますが、Themes.pasを見ると、ThemeServices()は常に有効なオブジェクトを返すようです。

function ThemeServices: TThemeServices;
begin
  if InternalServices = nil then
    InternalServices := ThemeServicesClass.Create;
  Result := InternalServices;
end;

テーマ (視覚スタイル) を使用しているかどうかを調べるには、
TThemeServicesのThemesEnabledプロパティを使った方がいいような気がします。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です