2017-09-17 1 views
0

私はFiremokey 10.2を使用しています。 macOSでは、通常のディスプレイから網膜ディスプレイに移動すると、内部的にコントロールのスタイルが変更されます。このメッセージは、TScaleChangedMessageを停止したいと思います。私はあなたに私のアプリでこのメッセージを停止する方法を助けることができれば感謝します。言い換えれば、ノーマルスタイルから高解像度スタイルへの変更を中止するにはどうすればいいですか?ScaleChangedメッセージでFiremonkeyのスタイルを変更しないようにするには

答えて

0

最も簡単な方法は、FMX.Platform.Macユニットのコピーを作成し、TFMXWindow.windowDidChangeBackingPropertiesメソッドを変更して、例えば、送信されることはありません:あなたは、Delphi 10.2アップデート1を使用している場合

procedure TFMXWindow.windowDidChangeBackingProperties(notification: NSNotification); 
begin 
// if (Application = nil) or (Application.Terminated) then 
// Exit; 
// try 
// TMessageManager.DefaultManager.SendMessage(nil, TScaleChangedMessage.Create(Wnd), True); 
// except 
// HandleException(Self); 
// end; 
end; 

すなわち、それ

でちょうどコメントアウトすべては残念ながら、それはあなたがすべて FMXユニットを含める必要があります意味この問題のためにプロジェクトパス(再コンパイルされるように):

https://quality.embarcadero.com/browse/RSP-18836

+0

:)ソリューション、 は function TMacWindowHandle.GetScale: Single; begin //Result := Wnd.backingScaleFactor result := 1; end; この機能を変更するには、この問題を解決するおかげ万人を見つけましたが、私のアプリは、網膜ディスプレイで実行され、コメントするとき、残念ながらFireMonkeyのは、まだスタイルを変更しますこの方法は私の問題を解決しません:( – user1581036

+0

あなたの質問は: "私はTScaleChangedMessageであるこのメッセージを停止したいと思います。あなたの質問に答えた場合を除き、私の答えは正しいです。 –

関連する問題