There is a problem with 200% zoom of 4K resolution

Viewing 8 posts - 1 through 8 (of 8 total)
  • Author
    Posts
  • #70807
    TT
    Participant

    Hello, my computer resolution is 4K and the zoom is adjusted by 200%. In this case, there will be skin problems. How can I solve this problem? Thank you very much

    Attachments:
    You must be logged in to view attached files.
    #70820
    Support
    Keymaster

    Hello!
    Which versions of the package, Delphi and Windows are used?

    #70853
    MetroFX
    Participant

    On my computer I also noticed many problems with correct display of skins on 4K monitors:
    1. When the window has the BorderStyle parameter set to bsDialog there is an additional bright frame of a few pixels width on the window.
    2. The same appears on pop-up messages “ShowMessage” and its like.
    3. There is a bigger problem with correctly displaying items on TsPanel when it contains several VCL controls with alBottom alignment set. Of course this occurs when a frame is displayed in real mode. Only resizing the window causes all the elements to be displayed legally. When the sFrameAdapter is removed from the frame the problem with correct display does not occur.

    AlphaControl 16.18; Rad Studio 11; Windows 10

    #70854
    Stephane Senecal
    Participant

    You might wanna try the latest version.

    Stephane Senecal
    CIS Group
    Delphi programmer since 2001

    #70860
    lam4o2
    Participant

    Same problem. This is a simple form with a button.
    BorderStyle set to bsDialog. If you set ExtendedBorders to true, you get additional white line on top.
    4k monitor with 200% scaling

    Using 16.24; Delphi 11.1

    • This reply was modified 2 years, 7 months ago by lam4o2.
    Attachments:
    You must be logged in to view attached files.
    #70942
    Lasse
    Participant

    I think you can fix this in acDials.pas by scaling the result:

    function TacDialogWnd.FixedFrame: integer;
    begin
      Result := ScaleInt(ac_GetSysMetrics(SM_CXFIXEDFRAME, GetWndPPI(CtrlHandle)));
    end;
    #71052
    Lasse
    Participant

    Well, that didn’t work like it should. I changed it to…

    function TacDialogWnd.FixedFrame: integer;
    begin
      if Screen.PixelsPerInch <> 96 then
        Result := ac_GetSysMetrics(SM_CXPADDEDBORDER, GetWndPPI(CtrlHandle))
      else
        Result := ac_GetSysMetrics(SM_CXFIXEDFRAME, GetWndPPI(CtrlHandle));
    end;
    #71140
    Support
    Keymaster

    Hello!
    The AlphaControls package v17 has been released today, the issue has been solved there.
    Thank you, Lasse.

Viewing 8 posts - 1 through 8 (of 8 total)
  • You must be logged in to reply to this topic.