J'utilise Firemokey 10.2. Dans macOS, en interne lorsque vous passez d'un affichage normal à un affichage rétine, il change automatiquement le style des contrôles. Je voudrais arrêter ce message qui est TScaleChangedMessage. J'apprécierais Si vous pouviez m'aider comment puis-je arrêter ce message dans mon application. En d'autres termes, comment puis-je arrêter de passer des styles normaux aux styles haute résolution?Comment arrêter de changer de style dans firemonkey dans le message ScaleChanged
0
A
Répondre
0
Je trouve la solution, changer cette fonction function TMacWindowHandle.GetScale: Single; begin //Result := Wnd.backingScaleFactor result := 1; end;
va résoudre ce problème :)
0
La méthode la plus simple consiste à créer une copie de l'unité FMX.Platform.Mac et à modifier la méthode TFMXWindow.windowDidChangeBackingProperties afin que le message jamais envoyé, par exemple:
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;
-à-dire tout commentaire tout ce qui en elle
Malheureusement, si vous utilisez Delphi 10.2 Mise à jour 1, cela signifie que vous devrez inclure toutes les unités FMX au chemin du projet (afin qu'ils soient également recompilés), en raison de ce problème:
merci d'un million, mais malheureusement, les changements FireMonkey encore le style quand mon application fonctionne dans l'affichage de la rétine et commenter sur cette méthode ne résout pas mon problème :( – user1581036
Votre question était: "Je voudrais arrêter ce message qui est TScaleChangedMessage. J'apprécierais Si vous pouviez m'aider comment puis-je arrêter ce message dans mon application. "J'ai répondu à votre question.Si vous éditez votre question, ma réponse est correcte. –