2010-11-28 10 views
3

私はDelphi Pro 6アプリケーションのいくつかのレンダリングされた画像を受信しました。これを使用して、そのルックアンドフィールを見直しました。もちろん、私のアプリケーションは、他のDelphiアプリケーションと同様に、VCLカスタムコントロールライブラリを使用しています。これらのコントロールは、ルックアンドフィールを変更することができないように、頻繁にペイントします。私はまた、オープンソースのJEDI JVCLライブラリを大量に使用しています。Delphi 6アプリケーションを再スケーリングするには?

ヒント、記事、Webページ、または画像から作業してDelphi 6アプリケーションを再構築またはオーバーホールすることについて話している人がいる場合は、そのことを知っていただければ幸いです。これは複雑なTFrame子孫の大量の大きなアプリケーションであり、JEDI VCLページコントロールを頻繁に使用するので、新しいコンポーネントライブラリに切り替えることは現実的ではありません。

私が試したことがない1つのアイデアは、現在のフォームのParentプロパティを新しいTFormに変更し、現在のフォームのAlphaBlendプロパティを設定することによって、各トップレベルフォームを別のTフォームに入れて入れておくことですそれは透明です。次に、新しいシェイプまたはホストTFormの背景を新しいルックアンドフィールを含むイメージに設定して、透明なフォームを出すようにしました。そのアプローチは一種のクルージングのように見えますが、私はサイズ変更の問題について心配していますが、それは私が使用できるかどうか疑問に思っているテクニックです。

+0

「WS_EX_LAYERED」は動作しません。トップレベルウィンドウでのみ使用できます。したがって、子ウィンドウのアルファブレンドはありません(これは、フォームを他のウィンドウで親として扱う場合に得られます)。 –

+0

チップSertacに感謝します。 –

答えて

3

VCLSkinやDevExpress Skinsのようなスキニングライブラリを使用します。

3

ほとんどすべてのスキンエンジンには、独自のスキンエディタがあります。だから、ちょうど1つを見てみる必要があります(Chris ThorntonはAlphaControlsとDynamicSkinFormについて言及していません)。次に、アーティストにスキンエディタを与え、そのツールでスキンを再描画するように頼む必要があります。

0

あなたのUIとビジネスロジックが緊密に結合されているようです。 RADスタイル開発プロジェクトの間でかなり一般的です。あなたはこのカップリングを破るのにうまくいくでしょう。多くの人のうちの1人がUI architectural patternsでこれを手伝ってくれます。可能であれば、私はUIからすべてのロジックを分離してテストできるクラスに移動するので、可能であればMVP Passive Viewを好む。アプリケーションのアーキテクチャによっては、他のパターンのほうが適切かもしれません。

私は鈍いでしょう。既存のアプリケーションでUIを分離するのは面倒で時には困難なプロセスです。その裏側のロジックを最小限に変更してUIを自由に変更することができます。

関連する問題