- This topic has 10 replies, 3 voices, and was last updated 4 years, 4 months ago by Support.
-
AuthorPosts
-
June 24, 2020 at 7:33 pm #69015RJParticipant
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
RobertAttachments:
You must be logged in to view attached files.June 25, 2020 at 11:14 am #69018LasseParticipantSomething 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).
June 25, 2020 at 11:41 am #69019LasseParticipantIn 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.
June 25, 2020 at 12:00 pm #69020LasseParticipantThere 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?
June 29, 2020 at 8:24 pm #69037SupportKeymasterHello!
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.July 1, 2020 at 6:58 am #69045LasseParticipantBoth paint blocking code was added in v. 15.10. It is not old code.
July 3, 2020 at 5:43 pm #69052SupportKeymasterHello!
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?July 4, 2020 at 4:28 pm #69060RJParticipantWhen 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.July 5, 2020 at 7:47 pm #69068SupportKeymasterI will install GExperts and I will check this issue soon.
Thank you for the test-project.July 6, 2020 at 7:36 pm #69077RJParticipantI 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.July 10, 2020 at 7:29 pm #69094SupportKeymasterI 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. -
AuthorPosts
- You must be logged in to reply to this topic.