問題タブ [vcl-styles]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
delphi - vclスタイルが変更されたことをどのように検出しますか?
動作するためにフォームのハンドルを必要とするいくつかのWinAPi関数を使用します。これにより、vclスタイルが変更されるとフォームのハンドルが再作成され、これらの関数への呼び出しの多くが動作を停止します。したがって、これらの関数の呼び出しを更新するために、現在のvclスタイルが変更(変更)されたことを検出する方法が必要です。質問はHow detect when a vcl style is changed?
delphi - Delphi TTaskDialog で VCLStyles を使用できますか?
Delphi TTaskDialog で VCLStyles を使用できますか?
delphi - vclスタイルが有効になっている場合、ネイティブプログレスバーを使用するにはどうすればよいですか?
pbstMarqueeスタイルのプログレスバーを使用する必要があります。この質問を読んで、受け入れられた回答は正常に機能しますが、ネイティブのプログレスバーを描画する必要があります
vclスタイルが有効になっている場合、ネイティブプログレスバーを使用するにはどうすればよいですか?
delphi - Delphi XE2、VCL スタイルを変更した後もフォームをトップに保つ方法
XE2 で奇妙な問題が発生しました。
SetWindowPos で HWND_TOPMOST を使用してフォームを一番上に設定していますが、実行時に VCL スタイルを切り替えると、ウィンドウが一番上に表示されなくなり、設定を解除/再設定しても修正されません。
これを修正する方法はありますか?
delphi - vclスタイルをサポートしていないタブシートの閉じるボタン
この例で提供されているコードを使用して、TPageControlのTTabsheetに閉じるボタンを実装してページコントロールの各タブシートに閉じるボタンを描画する方法コード内でThemeServicesをStyle Servicesに置き換え、スタイルを適用するときに閉じるボタン表示も反応もしません。誰かが私にこの問題を解決するための別の道を教えてもらえますか?ありがとう!これは、OnDrawTabイベントのコードです。
delphi - 隣接するモニターに境界線を表示する、最大化されたスタイル付きウィンドウについて何ができますか?
マルチモニターシステムでは、「空白の」VCLアプリケーションは正常に最大化されますが、スタイルが有効になっている(およびデフォルトとして選択されている)同じアプリケーションは正しく最大化されません。私が見ているのは、ウィンドウの右端が2番目のモニターまで伸びていることです(私のメインは左側にあります)。他のWindowsアプリと比較し始めたとき、(少なくとも)Windows 7では、最大化されたウィンドウの左側、右側、または下側にクライアント以外の境界線さえないことに気付きました。実際、標準のVCL(スタイルなし)アプリは、クライアント以外の境界線がなくても、同じように動作します。
これを修正するにはどうすればよいですか?TFormStyleHookにはまだ分析していないWMNCCalcSizeのハンドラーがあることに気付きましたが、最大化されたウィンドウに対してVCLがこのメッセージを誤って処理しているのではないかと思います。
delphi - TLinkLabel の VCLStyle に適用する方法
TLinkLabel に VCLStyle を適用してみました。
残念ながらアンダーライン(Aタグの文)が表示できません。
どうすればこれを解決できますか?
この問題を解決するために、タグが表示されない可能性がありますが、この「サンプル」
delphi - TDBCtrlGrid VCL Style カスタム クラスを作成するにはどうすればよいですか?
ここには、XE2 VCL スタイルと、ボタン、パネル、編集などのカスタム カラー、および VCL スタイルに関する多くの質問があります。既存の質問がそれをカバーしていることを願っていますが、そうではありません... したがって、DB コントロール グリッドはさらに別の特殊なケースのようです。
DB Control Grid VCL ソースでは、次のようにスタイル フックを登録します。
TCustomStyleEngine.RegisterStyleHook( TDBCtrlGrid, TScrollingStyleHook);
ただし、独自の DB Control Grid VCL スタイル フックを作成する場合は、この方法を使用する必要はありません。これを行うと、コントロール全体が非常に大きなスクロールバーのように描画されます。
では、DB コントロール グリッドのカスタム テーマを設定するにはどうすればよいでしょうか。テーマを完全に無効にしても、アクティブな行をカスタム ペイントできないようです。したがって、この目的のためには、カスタム サブクラスを作成して Paint メソッドをオーバーライドし、さらに VCL スタイルのフック クラスを作成する必要があると思います。
ほとんどの場合、通常の所有者描画イベント OnPaintPanel を使用してカスタマイズする必要があるようです。そのイベントを追加していない場合、そのイベントを追加すると、私が見た最大の VCL スタイルの不具合が修正され
TDBCtrlGrid
ます。 SelectedColor を使用し、すべてをフラット グレーまたはその他の基本色でペイントします。誰かがそれを確認できるか、そうでなければ教えていただければ幸いです。
delphi - Windows クラシック テーマでのみ発生する XE2 の TDateTimePicker VCL スタイルの不具合
これが、VCL スタイルが実際に使用される準備ができていないもう 1 つの理由だと思います。
TDateTimePicker コントロールは、VCL スタイルがなくても問題なく表示されます。任意の vcl スタイルを有効にすると、次のようになります。
スタイル フックを登録することで、このコンポーネント タイプだけの vcl スタイルをオフにすることができますが、それは非常に見苦しく見えます。
これは、アップデート 4 がインストールされた Delphi XE2 上にあります。
理想的には、回避策、日時ピッカーのいくつかのプロパティ、または日時ピッカーに正しくペイントしてテーマを強制するために実行できる日時ピッカーのサブクラスがあることを願っています。
通常のコンボボックスのテーマが正しく設定されていることに注意してください。これは、想像できる最小限のサンプル プロジェクトで簡単に再現できることに注意してください。はい。それはYet Another Stylesのバグです。
更新Aero を使用しない Windows Server 2008 R2 上の Windows Common Controls バージョン (Windows サーバー コンポーネント用語では「デスクトップ エクスペリエンス」) に関連する、プラットフォーム固有の可能性があります。他の人が再現できなかったので、いくつかの異なる Windows マシンでこれを試してみることにしました。それを行った後、問題が Windows Server 2008 R2 でのみ再現されることがわかりました。一部のお客様は、Windows Server 2008 R2 を使用しています。ご存じのとおり、VCL スタイルを使用する主な理由は、Windows のテーマに関係なくアプリの外観を同じにするためです。ただし、上記の場合、テーマが正しく設定されていない DateTimePicker コントロールを除き、Windows Server 2008 R2 でのみ、アプリ全体が適切にテーマ設定されます。同じ XE2 ベースのデモ アプリが Windows 7 で正常に動作します。
動作しているシステムと動作していないシステムの両方で、SysWow64 フォルダーに ComCtl32.dll があり、バージョンは 5.82.7601.17514 です。ただし、VCL テーマがオフの場合、これらのコントロールのネイティブ レイアウトと外観は明らかに異なり、これがスキニング コードに影響し、失敗します。
Update2 : バグとして報告: QC エントリ 106783
delphi - メニューの最後の項目の右にシフト
デルファイ Xe2U4。メイン メニュー項目: ファイル、オプション、ヘルプ (名前: HelpMenuItem)。2ボタン。StyleManager Xe2 を使用します (プロジェクト オプションで xe2 テーマを有効にし、デフォルトで「Metro Blue」を設定します)。
使用テーマで動作しないのはなぜですか? メニューの最後のポイントを右側に移動する通常の方法があるかどうか、依存スキームが適用されているかどうかに関係なく?