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

解決


まこと  2006-12-10 09:21:06  No: 24194

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

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

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

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

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

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


えーとね  2006-12-10 20:38:04  No: 24195

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


まこと  2006-12-15 09:57:47  No: 24196

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

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

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

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

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

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


もにゃ  2006-12-15 18:35:57  No: 24197

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


まこと  2006-12-16 20:39:25  No: 24198

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


もにゃ  2006-12-16 21:10:55  No: 24199

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


まこと  2006-12-16 22:01:10  No: 24200

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

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

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


まこと  2006-12-16 22:01:36  No: 24201

チェックつけ忘れです。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加