I have next problem. Other team was changed(deleted) property from component and now some forms openings with message "Error reading form property .... does not exists". How can I check correctness dfm-file in Delphi project ?
Asked
Active
Viewed 1,997 times
3
-
1Do you want to find errors or remove them? To remove errors simply open forms or data modules where that component was in use, ignore errors, and save again. – teran May 29 '12 at 12:41
-
I have 10 million line of codes and many forms. I want check all forms – YoungMaster May 29 '12 at 12:43
-
1if you use Win Vista/7 add `dfm` files to the Search Indexer as a plain text and try to search in you projects directory by component class name using `*.dfm` mask. May this topic will be usefull http://stackoverflow.com/questions/9529727/a-quick-way-to-remove-properties-from-dfm-files-in-delphi – teran May 29 '12 at 12:52
-
Developers remove property - ItemHeight and now if I choose search this name that I see many other valid property from other component – YoungMaster May 29 '12 at 12:59
-
search by component class name (instead of removed property name) and you will get all dfms with that component. – teran May 29 '12 at 13:08
-
5Maybe [Andreas Hausladen's DFMCheck](http://andy.jgknet.de/blog/ide-tools/dfmcheck/) can help you. – Uli Gerhardt May 29 '12 at 13:21
-
I have "Index of out" from "Andreas Hausladen's DFMCheck", or maybe I not correct use this tool (used in IDE) – YoungMaster May 29 '12 at 13:28
1 Answers
2
You need more than a dfm checker.
The error is created if the object reads a property that it does not recognize. You have probably updated a set of (external) controls and they removed some properties.
If these are external controls, you could possibly get a list of dropped properties.
Next you can use a tool like grep (or another search tool) to find dfm files with that property. So you know which forms to open and test.
There are some other reasons that this error could occur:
- somebody edited the dfm file by hand and made a mistake.
- a TForm descendant is changed into a TFrame descendant.

Toon Krijthe
- 52,876
- 38
- 145
- 202
-
2OP wrote that their (or third party) Component developers removed one of component properties, wich OP used. So the reason is that components properties set was changed, and he knows theese properties – teran May 29 '12 at 12:57