In a Delphi 7 project we installed FastMM. Soon after that we noticed one of the forms started to issue Abstract Error message on close. I have debugged this extensively and I can't find the reason so far. The usual reason for this error message doesn't seem to apply here. The application doesn't define abstract classes. I also searched the form for a possible use of TStrings or something like that. Most importantly, we didn't (well, we think we didn't) make any changes to this form. It just broke.
If the answer to these questions is no, then I'll just continue to search for an unimplemented method call, relieved that I am not missing something else.
Class AbstractMethodErrorThrown when an application tries to call an abstract method. Normally, this error is caught by the compiler; this error can only occur at run time if the definition of some class has incompatibly changed since the currently executing method was last compiled.
To simply display the system standard error dialog, you can use MessageDlg : MessageDlg('Error Message', mtError, [mbOK], 0); The caption of the window in this case is simply "Error".
In Delphi terms, it is called an abstract method. It is an abstraction of the method, forcing the child classes (the car models) to flesh out the details of the method for itself. An example For our example, we will keep it simple. We'll look at the class of polygons, such as triangles, squares, pentagons, and so on.
"Abstract" means something like "I feel something's wrong here, I just can't tell you what". The "Abstract error" means that a method is called in an object, and there is no code to do it. Abstract methods are used in base classes, classes that are not meant to be used as-is.
The "Abstract error" means that a method is called in an object, and there is no code to do it. Abstract methods are used in base classes, classes that are not meant to be used as-is. You find TComboboxStrings and many, many more), while TList has none of them.
Delphi does not support abstract member properties directly. To implement an abstract property, make use of abstract methods. That is, you can read a GetPropertyX abstract function and write to a SetPropertyX abstract procedure. In effect, creating an abstract property.
If there is memory corruption then all sort of errors can be raised and it is very difficult to find the cause.
To answer your questions: 1) Yes abstract error can also be caused by memory corruption, and 2) Yes enabling FastMM can make bugs visible that normally pass unnoticed (but should still be fixed).
Some general advice for finding memory errors:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With