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

Viewing 10 posts - 1 through 10 (of 10 total)
  • Author
    Posts
  • #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 10 posts - 1 through 10 (of 10 total)
                      • You must be logged in to reply to this topic.