TsGroupbox, TSPanel, TSSpinedit becomes completely white with upgradef to V15.10

Viewing 11 posts - 1 through 11 (of 11 total)
  • Author
    Posts
  • #69015
    RJ
    Participant

    I did a upgrade from V15.09 to V15.10 and now TsGroupbox, TSPanel, TSSpinedit becomes visible and completely white.
    At designtime i had them set Visible:= False but after compiling they are visible as a white rectangle. Some Groupboxes get the orignal looks when clicking in the rectangle. ( see attachment)

    I am using Delphi7
    Regards
    Robert

    Attachments:
    You must be logged in to view attached files.
    #69018
    Lasse
    Participant

    Something fundamental is wrong in V15.10 indeed. Control invalidate calls do not trigger repainting at all. I need to repaint controls (instantly) instead of invalidate (later).

    #69019
    Lasse
    Participant

    In my case it is this code in acSBUtils.pas:

    procedure TacEditWnd.acWndProc(var Message: TMessage);
    ...
    4152: CM_MOUSEENTER, CM_MOUSELEAVE: begin
            Skindata.FOwnerControl.Perform(WM_SETREDRAW, 0, 0);
            inherited acWndProc(Message);
            Skindata.FOwnerControl.Perform(WM_SETREDRAW, 1, 0);
            Exit;
          end;

    Commenting that out solves the problem.

    #69020
    Lasse
    Participant

    There is also added paint locking code that is causing problems:

    4214:WM_SETFOCUS, WM_KILLFOCUS: begin
          if MayBeHot(SkinData, False) and (Skindata.FOwnerControl is TWinControl) and TWinControl(Skindata.FOwnerControl).CanFocus and TWinControl(Skindata.FOwnerControl).TabStop then begin
            Skindata.BGChanged := True;
            Skindata.FFocused := WM_SETFOCUS = Message.Msg;
            // Skindata.FOwnerControl.Perform(WM_SETREDRAW, 0, 0);
            inherited acWndProc(Message);
            // Skindata.FOwnerControl.Perform(WM_SETREDRAW, 1, 0);

    Commenting out that paint locking solves the problem. The question is, why these are added?

    #69037
    Support
    Keymaster

    Hello!
    This code is very old and was used for forbidding of standard painting by Windows and flickering.
    I need you help in the repeating of the problem.
    Can you make a test-app where this problem may be repeated? I will find a real reason why the problem happens.

    #69045
    Lasse
    Participant

    Both paint blocking code was added in v. 15.10. It is not old code.

    #69052
    Support
    Keymaster

    Hello!
    You are right, this code is new, sorry.
    This code was added for removing of blinking when mouse is hovering and when focus is changed at some controls. I will return old code back, but I need to repeat your problem somehow for researching and better changes in future. How can I repeat described problem with new code?

    #69060
    RJ
    Participant

    When i try to replace the standard Tgroupbox to TSGroupBox with GExperts Replace components function i get an error.
    I made a sample project with only a TGroupBox and a Tbutton in it then the error occurs. Maybe this helps you finding the error.
    For now i manualy exchange the TGroupbox by placing a new TSGroupBox on the Form and copy manualy all the components whats inside the old TGroupbox. When is do this i have no errors and the white rectangles are gone when i run the programm.

    I hope you find a solution because it cost me a few days to convert my programm to the Ts components and i have another program to changeover.

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

    I will install GExperts and I will check this issue soon.
    Thank you for the test-project.

    #69077
    RJ
    Participant

    I discovered an other strange behavior but i think it has to do with the same bug.
    The components in the example stay’s visible even when i forced them to false.
    Strange is also that when you move the line ” panel2.Visible:= false;” under the last line the StringGrid2 is not visible. When sSkinManager1.Active:= false everything works fine.

    i hope this helps you finding the problem.

    Regards Robert

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

    I will try to fix it.
    I see many different issues in the one topic. Creation of separate topics is more effective.

    I have tried GExperts and see the described problem with converting.
    This problem exists with other controls from the package also, not only GroupBox and Button.
    This problem not linked with repainting of controls and structure of Dfm files is correct.
    Something happens after conversions, seems. Something like incorrect recreating of controls. But I can’t verify what happens there, unfortunately. You can try to convert all project with all forms closed in design. Save and close the project and reopen it. Also you can try the AlphaConvert tool. This program is very old, but should work for Dfm forms saved in text format.

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