4

Delphi 2010 を使用して古いアプリケーションを書き直しています。XE2 に移植するときに、コードにプレースホルダーを入れたいと考えています。FireMonkey に GetSystemMetrics と同等のものがあるかどうかに興味があります。私は特に興味があります:

  • GetSystemMetrics(SM_CXSCREEN)
  • GetSystemMetrics(SM_CYSCREEN)
4

2 に答える 2

5

デスクトップ サイズ ( nモニターの合計) ではなく、メイン モニターのサイズだけが必要な場合は、次のように使用できます。

uses ..., FMX.Platform;


var
  p: TPointF;
begin
  p := Platform.GetScreenSize;
  ShowMessage(Format('X: %f' + LineFeed + 'Y: %f', [p.X, p.Y]));

ウィンドウズ OS X

于 2012-05-12T22:27:29.070 に答える
1

実際SM_CXSCREENには、SM_CYSCREENおそらくまったく使用すべきではありません。これは、プライマリ モニターの寸法を示しているだけです。複数のモニターが使用されている最近では、これはあまり役に立ちません。VCL コードでは、Screen.Monitors[]および関連するプロパティを使用して、モニターに関する情報を取得する必要があります。

FMX に関しては、マルチモニターのサポートはなく、プラットフォームに依存しない画面サイズのメトリックを見つける方法もありません。Screen.Monitors[]あなたの立場では、FMX ポートにたどり着いたら、それを使用して処理するだけです。いずれにせよ、FMX に移植するときはすべての GUI コードを書き直す必要がありますが、この特定の問題は心配する必要はありません。

最後に、あなたが言うとき

XE2 に移植するときにコードにプレースホルダーを入れたい

FMX への移植は必須ではないことを認識していただければ幸いです。VCL は XE2 で引き続きサポートされ、利用可能であり、今後長い間削除されることはありません。FMX とは関係なく、XE2 に移植できます。

于 2012-05-12T14:26:50.140 に答える