フォーカスを受け取れるフラットなボタンをつくるには?

解決


まこと  2006-12-10 00:21:06  No: 24194  IP: 192.*.*.*

この掲示板にはいつもお世話になっておりますm(__)m
1点質問させてください。

フラット表示したツールバーの特定のボタンだけフォーカスを
受け取れるようにしたいと思っています。

理由は,以下の条件を満たすボタンを使用したいためです。

・フラット表示できる。
・ドロップダウンメニューを表示できる。
・フォーカスを受け取ることができる。
  (点線でカーソルがあたっているのがわかるもの。)

標準コンポーネントには,以上の条件を満たすものはありません
でした。

開発環境が自由にいじれないので,できれば標準のコンポーネン
トだけで実現できる方法を探しています。何かよい方法ありまし
たら,お教えください。

編集 削除
えーとね  2006-12-10 11:38:04  No: 24195  IP: 192.*.*.*

> 開発環境が自由にいじれないので,
Turbo Explorer でしょうか?ソースがあれば、コード上でCreate する事は出来ますよ。

編集 削除
まこと  2006-12-15 00:57:47  No: 24196  IP: 192.*.*.*

せっかく返信をいただいたのに,返事がかなり遅れてしまいま
した。大変申し訳ありません。

  返信,どうもありがとうございます。

返信の趣旨は,「インストールをしなくても,ソース付きのユニ
ットにライブラリパスを通して,オブジェクトの動的生成をすれ
ばボタンを作ることが可能」という意味だと思いますが,環境を
いじれないというのは,どちらかというと,技術的な観点ではな
く,開発方針の観点からの制約です。

今,あるソフトウェアの開発に携わっているのですが,ライセン
スや保障,保守性の観点から,自前でできる部分はできるだけ標
準コンポーネントの範囲内でつくりたいと考えているのです。

(また,いろいろコンポーネントをあたってみたのですが,完全に
希望にそったコンポーネントが見つからなかったという理由もな
いわけではありませんが。)

ツールバーの特定のボタンのみTabStopがかけられるなら,それが
最良という考えはほぼ固まっておりましたので,標記のような
質問をさせていただいたわけです。もし,これで対応方法がある
のであればご教示いただけると幸いです。

編集 削除
もにゃ  2006-12-15 09:35:57  No: 24197  IP: 192.*.*.*

TPanelが望みの動作しますよ。
TabStopがデフォルトでFalseになってるのでTrueにしてちょ。

編集 削除
まこと  2006-12-16 11:39:25  No: 24198  IP: 192.*.*.*

再度のご回答どうもありがとうございます。
  今,フォーム上にボタン2つとパネル1つをおいて,ちょっと試し
てみました。
  その結果,
    ①フラット表示できる。
    ②ドロップダウンメニューを表示できる。
    ③-1 フォーカスを受け取ることができる。
    ③-2 点線でカーソルがあたっているのがわかるもの。
のうち,確かに①と③-1は満たすのですが,②と③-2を満たすもの
であるということが確認できませんでした。これはどのようにする
ことを想定していらっしゃるのでしょうか。お教えいただけますで
しょうか。

編集 削除
もにゃ  2006-12-16 12:10:55  No: 24199  IP: 192.*.*.*

あぁ、「何もコードを書かないで」という条件入りですか…
だとすると、無いとおもいます。
TPanelから派生させると少し楽かな?程度です。
Windows標準コントロールであるのか調べてませんが、たぶん無いです。
私だったら迷わずTCustomControlから派生させますね。
でもそうなると、「ソース付きのユニット」になってしまいます。
まぁDelphiでプログラムを書いた時点で「ソース付きのユニット」なんですけどね ^^;
お役に立てずスンマセン。

編集 削除
まこと  2006-12-16 13:01:10  No: 24200  IP: 192.*.*.*

こちらこそ無理を言ってしまったようで申し訳ありません。

  先ほど,TCuteButtonという,フリーで公開されているコン
ポーネントを再度試していたのですが,今のところこれがもっ
とも理想に近い形です。(ご提示いただいたとおり,TPanelか
ら派生して作成しているコンポーネントです。)
  この内容を参考に,コンポーネント化した方が対応しやすそ
うなので,そのように対応しようと思います。

  これでこの件は解決とさせていただきます。最後までどうも
ありがとうございました。

編集 削除
まこと  2006-12-16 13:01:36  No: 24201  IP: 192.*.*.*

チェックつけ忘れです。

編集 削除