問題タブ [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.

0 投票する
1 に答える
2582 参照

delphi - コンポーネントを動的に作成するときに VCL スタイルのオーバーライドを強制する方法は?

Delphi XE2 では、作成したカスタム コンポーネント クラスの VCL スタイルのオーバーライドを正常に作成しました。私が見つけたのは、コントロールのランタイム作成中にスタイルが適用されないように見えることです。

具体的には、TPanel を拡張し、動的に作成されたパネルで TScrollBox を埋め、それぞれを特定の色に設定しています。また、API を使用して、作成プロセス中に ScrollBox の再描画を一時停止します。

読み込みが完了すると、TPanels が clWindow に設定されたまま (視覚的に) 残りますが、TPanel を別の場所にドラッグ アンド ドロップすると、コードで設定した色が「開始」されます。そのため、これらの色を適用できない/許可していない...またはパネルが単に更新されていません。

したがって、動的コンポーネントの作成時に VCL スタイルのオーバーライドで呼び出す必要がある「更新」があるかどうか、または TScrollBox での再描画の一時停止が、作成時に Panel で更新されない色との干渉を引き起こしているかどうかはよくわかりません..中断された ScrollBox の子であるためです。

私がやろうとしていることを見落としている単純で既知の「落とし穴」があるかどうか疑問に思っています。

私はプロジェクトを必要最小限に落としましたが、まだ問題があります。

これはラベルを追加する TPanel の単純な拡張です。

これは、問題を示す単純なプロジェクトです。ボタン 1 は、TInfluencePanel の 5 つのインスタンスを ScrollBox1 に読み込みます。コード内の色の代わりに、デフォルトのウィンドウの色とスタイルなしで表示されます。Button2 は、コード化された色で表示される ScrollBox2 にコントロールを移動します。これにより、中断されたすべての再描画が取り除かれます。

0 投票する
1 に答える
1930 参照

delphi - Inno Setup で VCL スタイルを DLL ベースのフォームに適用する方法は?

Delphi XE2 で作成している一連の DLL で Inno Setup (Unicode) を使用しています。DLL には、インストール ウィザード/進行中に表示される VCL フォームがあります。

Inno Setup インストーラーでVCL スタイルを実装してみました。これらの DLL 内で作成されたフォームを除いて、すべて問題ありません。フォームの一部はスキンされていますが、すべてではありません...

部分的な皮膚

ご覧のとおり、フォームの背景色、リスト ビューの背景色、およびフォントの色が変更されています。ただし、リスト ビューのヘッダー、進行状況バー、およびフォームの境界線はまだ古いスタイルです。

これらの DLL のフォームに適切なスタイルを表示するにはどうすればよいですか?

0 投票する
1 に答える
1151 参照

delphi - Delphi XE5: フィールドが数値で、アプリケーションがデフォルト スタイルでない場合、DBEdit の背景色が機能しない

DBEdit実行時に背景色を変更できません。DbEdit styleElements有効になっている場合( [seFont,seClient,seBorder]) DBEditName.Color:=clRed(たとえば)まったく機能しない。代わりに、境界線のみをstyleElements=[] DBEditName.Color:=clRed変更する場合(下の画像を参照)。しかし、私は完全な背景色が欲しいです。どうすればそれを達成できますか?DBEdit

編集

この問題は、DBEdit データソース フィールドが NUMERIC (コンテンツが右揃え) で、アプリケーションにデフォルト以外のスタイルが適用されている (Windows スタイルがない) 場合に発生します。

ここに画像の説明を入力

0 投票する
1 に答える
2439 参照

delphi - FastReport 4 と VCL スタイルのバグ

いくつかの背景情報。私は最近 Delphi をバージョン 6 (!!!) から Rad Studio XE5 にアップグレードした非常に小さな会社で働いており、10 年以上の間に状況は確実に大きく変化しました。IDE とフレームワークではほとんどのことが改善されているようですが、新しい VCL スタイル機能には大きな問題があります。非常にバグが多く、当時の Borland で慣れていた品質には及ばない. 動作させるために多くの微調整と回避策を実行しましたが、現在 1 つの問題に悩まされており、FastReport 4 のプレビュー フォームに関係しています。

  1. ツールバーの周りに白い境界線が表示されます。
  2. 印刷ダイアログなどのコントロールの位置がずれているか、正しく配置されていない

VCL Styles を使用してソフトウェアに新しい外観を与えたいと考えているため、これらの問題に対する解決策があることを願っています。

問題を再現する手順:

  1. 新しい VCL フォーム アプリケーションを作成する
  2. [プロジェクト] > [オプション] > [アプリケーション] > [外観] で VCL スタイルを確認します (例: Sapphire Kamri)。
  3. TfrxReport レポート コンポーネントをフォームに追加します。
  4. コンポーネント frxReport1 をダブルクリックし、コンテンツを含めるためだけにページ ヘッダー バンドを追加します。
  5. TButton を追加し、OnClick イベントで frxReport1.ShowReport(); を呼び出します。
  6. プログラムを実行し、ボタンをクリックします。プレビュー フォームでは、ツールバーが白い境界線で囲まれていることがわかりますが、これは奇妙に見えます。
  7. 左端の印刷ボタンをクリックして印刷ダイアログを表示すると、グループ ボックスとキャンセル ボタンがクライアント領域の外にどのように配置されているかがわかります。

問題を解決するための解決策や提案はありますか?

ここに画像の説明を入力

編集: RRUZ は良い答えを出しましたが、問題 #1 に対する彼の解決策にはいくつかの副作用があったため、コードを単純化し、ツールバーの境界線を手動でペイントすることにしました。このような:

0 投票する
0 に答える
209 参照

windows-8 - Windows 8 標準 VCL スタイル/テーマ

現在、Rad Studio XE5 を使用していますが、標準の Windows 8 スタイル (モダン UI ではない) に基づいて独自のスタイルを作成したいと考えています。Bitmap Style Designer という Rad Studio のビルトイン デザイナを使用しています。ただし、Windows テーマの vsf ファイルが見つからないようです。これをどこで見つけることができるか、または存在するかどうかを誰かが知っていますか? ありがとう。

0 投票する
1 に答える
138 参照

c# - カスタム VCLStyle Delphi-XE2 アプリケーションを AvalonDock にドッキングする

Avalondock を使用した C# アプリケーションがあります。このアプリケーションでは、メモ帳や Windows 電卓などの「サード パーティ」アプリケーションをドッキングできます。このドックでは、希望どおりにアプリケーション ウィンドウがタイトルバーなしで表示されます。

ドッキングしたいDelphi XE2アプリケーションもあります。これは正しく機能しており、タイトルバーが削除され、メインメニューが機能しています。同じアプリケーションをカスタム VCL スタイルとドッ​​キングするまで。その場合、タイトルバーがドックに表示されたままになり、メイン メニューが機能しなくなります。タイトルバーの問題は、borderstyle を bsNone に設定することで解決できます。

formcreate、formshow、または formactivate のコンパイル中または実行時にカスタム スタイルを適用すると、この問題が発生します。ボタンをクリックしてスタイルランタイムを適用すると、メインメニューは機能し続けますが、ウィンドウがドッキング解除され、空のドックとその前にアプリケーションがあります。

この問題を解決する方法を知っている人はいますか?

タイス

0 投票する
1 に答える
514 参照

delphi - VCL スタイルを使用して StringTree の背景色を設定するにはどうすればよいですか?

VCL スタイルの仮想 StringTree の色を変更しようとしています。これは、列と行がコンポーネント領域全体を埋めていない場合に、セルの外側 (右と下) にあるツリーの部分に影響します。

スタイルの場合、この色はによって表されscTreeView、適用されます

残念ながら、スタイルscTreeViewを変更すると、アプリ内のすべての TreeView (仮想 StringTree だけでなく) の背景色が変更されます。

しかし、私は StringTrees の色を変更したいだけです。

Styles がなければ、各 StringTree の Color プロパティを個別に設定できます。VCL スタイルの実装scTreeViewが間違った動作であり、修正する必要があるかどうかはわかりません。ただし、スタイルのない StringTree とは動作が異なります。

質問: StringTree のこの背景色を修正するにはどうすればよいですか? (すべて、必ずしも個別ではありません)

StyleHook を作成しますか? どのメソッドを実装する必要がありますか? 特定のクラスをオーバーライドまたは挿入することは可能ですか?

0 投票する
1 に答える
302 参照

delphi - VCL スタイル Mac ルック スタイル デザイナー

最近、VCL Styling (Embarcadero XE2 for Delphi) について調査を行っています。スタイルを読み込んで設定できるので、うまく機能します。

現在、私は VCL スタイル デザイナーを調査しています。アプリケーション テキスト (フォームのキャプション) は右側にあります。

私は最後にいて、誰かが私にいくつかの指針を与えることができることを願っています.

つまり、基本的に私が「エミュレート」しようとしているのは、Windows フォームでの Mac の外観です。

どんな助けでも大歓迎です。