VCLStylesを使用するためにDelphiのTTaskDialogを作成できますか?VCLStylesを使用するためにDelphi TTaskDialogを作成できますか?
答えて
AFAIK、そして彼のコメントのTLamaによると、このTTaskDialog
はWindows APIを直接マップするだけで、VCLスタイルを直接行うことはできません。
しかし、described in this article about using VCL Styles within a TWebBrowserのようなハックを使用すると、これを行うことができます。
これはいくつかの仕事であり、実現可能ではないと私は思う。 Windowsで作成されたすべてのコンポーネントをハックする必要がありますが、これは簡単ではありません。 Task Dialog APIは、TWebBrowser
のように、多くのコールバックがオーバーライドされる準備ができている、完全で詳細なCOMインターフェイスを提供していません。
Open-Source Task Dialog emulation codeを最初に使用すると、エミュレーションレイヤーを純粋なVCLコンポーネントで使用するように強制できます。この場合、スタイルを扱うのは簡単です。ユニットを改善させるために、私たちにフィードバックとパッチを送ってください!他のユーザーは、このようなすてきな機能を享受したいと思っています。これはオープンソースでは素晴らしいものです。何かを始めて公開してからcontributions are integratedとすると結果が良くなります。 :)
+ 1ed、私はクレジットを盗もうと思っていません:-)とにかく私はポジショニングに関する奇妙な問題を発見しました。 'Form.Canvas.TextWidth'を設定すると位置が高い負の値に変更されます。フォームのサイズを変更するたびに位置の値も小さくなるため、フォームは決して表示されません。なぜこのようなことが起こるのか分からない。これはフォームの位置IMHOに影響しないはずだからだ。 – TLama
@TLama「Form.Canvas.TextWidthを設定する」とはどういう意味ですか? –
'SynTaskDialog.pas'、653行目。削除した投稿のように' Execute'を呼び出しました。その行に 'Form.Left'と' Form.Top'が負の値に変更されました(とにかく)。 Btw。私は 'poScreenCenter'の位置が設定された呼び出し元のフォームを持っています(それはどういうわけか、なぜか分かりません)。 – TLama
VCL Styles Utilsライブラリには、TTaskDialogのサポートが追加されました。
プロジェクトにこれらのユニットを追加する必要があり、この機能を有効にするには。
- Vcl.Styles.Utils.Forms
- Vcl.Styles.Utils.SysStyleHook
- Vcl.Styles.Utils.SysControls
- Vcl.Styles.Hooks
詳細情報ことができますこのblog postに見つかります。
- 1. Delphiでクエリを作成するためにマルチスレッドを使用する
- 2. ストライプでバックエンドサービスを作成するためにasp.netを使用できますか?
- 3. Delphi 10 Seattleを使用してWindows 10 Mobileアプリケーションを作成できますか?
- 4. pyinstallerを使用してexeファイルを作成するためにDockerを使用できますか?
- 5. ブラウザストレージ(webSQL/IndexedDB)でHTML5オフラインアプリケーション(キャッシュマニフェスト)を作成するにはDelphi + Intrawebを使用できますか?
- 6. asp.netアプリケーションでDelphiで作成されたライブラリを使用するには?
- 7. Facebookアプリケーションを作成するためのDelphiコンポーネントはありますか?
- 8. JSONを操作するために使用できるAlamofireコールバックの作成
- 9. Delphi XE2で作成した.dylibはXcodeアプリケーションで使用できません
- 10. Delphi:メインスレッドの外側にソケットを作成して使用する
- 11. Delphiでサウンドノートを作成するには?
- 12. Webアプリケーション用のシングルサインオンを作成するためにOpenstack Identity APIを使用できますか?
- 13. tsqlに永続ユニークキーを作成するために使用できるオプション
- 14. ロジックダイアグラムを作成するために使用できるウィンドウフォーム用のコントロールはありますか?
- 15. ブラウザのDOMからPDFドキュメントを作成するためにPDFreactorを使用できますか?
- 16. モバイルアプリで使用するためにwordpressからjson文字列を作成できますか?
- 17. CakePHPでユーザパスワードを作成するためにユーザ定義の暗号化方式を使用できますか?
- 18. カスタム変換を(理論上)CALayerにウォーターリップル効果を作成するために使用できますか?
- 19. フォロワー数に応じてユーザーリストを作成するためにInstagram APIを使用できますか?
- 20. パンダにダミーを作成するために日付インデックスを使用できますか?
- 21. LinuxでC++プログラムで使用するためにMONOでdll /ライブラリを作成できますか?
- 22. Delphiを使用して圧縮(ZIP)フォルダを作成する
- 23. Delphi 2010を使用してログイン/パスワードダイアログを作成する方法
- 24. ウェブサイトアーキテクチャを作成するために使用するものは何ですか?
- 25. TTaskDialogの使い方は?
- 26. AsyncResultを作成するためにイベントを使用してBegin/End asyncパターンをショートカットできますか?
- 27. DelphiでXMLを使用するためのチュートリアルはどこですか?
- 28. Testcontainerが私のためにドッカーネットワークを作成できますか?
- 29. Delphiで型メソッドを作成することはできますか?
- 30. Highchartsで使用するためにデータベースから日付を作成する
['TTaskDialog'](http://docwiki.embarcadero.com/Libraries/en/Vcl.Dialogs.TTaskDialog)は完全に[' Windows Vista up dialog']です(http://msdn.microsoft.com /en-us/library/windows/desktop/bb787471%28v=vs.85%29.aspx)、これは(もし可能であれば)行うのが難しいと思います。私の提案はあなた自身を作成することです(さらに、あなたは利益を得るでしょう、あなた自身のタスクダイアログは、Windows XPでも以下のように動作します)。 – TLama
['Arnaud'](http://stackoverflow.com/users/458259/arnaud-bouchez)が['タスクダイアログシミュレーション 'を作成しました](http://blog.synopse.info/post/2011/03/05/Open-Source-SynTaskDialog-unit-for-XP、Vista、Seven)をインストールしてください。 – TLama
Tlama/Arnaud - 私は再びStackOverflowコミュニティの知識と有用性に驚いています! – Mmarquee