Friday, March 28, 2014

[C++ Builder] [ EReadError with message 'Ancestor for '' not found' ] raised when the user changes language at a multi-language application


This error is raised when the user changes language at a multi-language application. It is because there is one or more components whose Name property is empty (""). To solve this problem, the empty-Name component should be found and set a name. Please see the method to find the component whose name is empty from the application. Because the component has no name, you can identify it by its class name and which form it is only.
For example, a TLable component with no Name is found. Go to the object inspector of the form, you will see the component <Components[43]> is located at the top of object inspector and its Name property is empty, as shown in the picture. (At this example, the TLabel component is inside Panel1 )

Then you can set a name to the component and the problem solved.

No comments:

Post a Comment

[Qt] 執行檔需要哪些 Dll?

 1. 使用 Qt  的 windeployqt.exe 工具 (在 C:\Qt\Qt5.14.1\5.14.1\msvc2017\bin\)。   a. 把執行檔 myProgram.exe 放在某個資料夾。   b. 在檔案總管這個資料夾按 Shift 和滑鼠右鍵,開啟 Po...