2012-01-30 9 views
4

私は以前にVGScene(Firemonkeyの前身)を使用してアプリケーションを作成していましたが、最近Delphi XE2のFiremonkeyに切り替えました。Windows DPIフォームスケーリング

フォームをスケールするにはVGScene私がしなければならなかったのは、VGSceneオブジェクトのRootオブジェクトをスケールしてフォームのすべてのコンテンツを拡大することでした。しかし、私はこれがFireMonkeyを使ってどのように行われるべきかはわかりません。

私の形態は、左とクライアントレイアウトとの間の垂直分割制御と、2 TLayouts一左揃えとクライアント整列させるために一組から成ります。クライアントレイアウトには、クライアントの配置に合わせてリストボックスが設定されています。

私はすべてのコントロールを使ってベースTLayoutを作成しようとしましたが、ベースのTLayoutをスケーリングしていますが、これは正しく動作しません。左側のレイアウトは適切にスケールされますが、クライアントレイアウトのリストボックスは、クライアントレイアウトオブジェクトの下端?つまり、リスト全体がリストの項目をフォームの右端からずらして(切り取られています)、縦スクロールバーがフォームの下端を超えて表示されない場合です。クライアントレイアウトの幅と高さは、フォームが許可するよりも大きいものにスケーリングされますが、それでもフォームの領域を埋めるものではないかのようです。

リストボックスのスケーリングのように、個々のオブジェクトのスケールを調整しようとしましたが、これは同じ結果をもたらします。リストボックスはフォームの境界を超えて拡張されます。

誰もが考えている?

答えて

0

1つの可能性は、コントロールとスプリッタを配置する手順、つまりas recommended on the TSplitter documentationに完全に従っていないことです。

もしそうでなければ、すべてのプロパティが正しい値に設定されているように見えますが、何らかの形でコントロールとスプリッターはちょうど協力しません。正しい値のalignプロパティ(つまり、左のコンポーネントにはalLeft、スプリッタにはalLeft、右のコンポーネントにはalClient)のプロパティを取得することに注意して、もう一度試してみることをおすすめします。

関連する問題