[Lazarus] Check if an abstract method is implemented or not
xrfang
xrfang at gmail.com
Thu Jan 24 09:11:09 CET 2013
Hi All,
I wrote a TPainter abstract class, and a TPaintRect class. In the TPaintRect class I have this code:
procedure TPaintRect.OnMouseEnter(Sender: TObject);
var
i: Integer;
p: TPainter;
begin
for i := 0 to painters.Count - 1 do begin
p := TPainter(painters.Objects[i]);
try
p.OnMouseEnter(Sender);
except on EAbstractError do ; end;
end;
if Assigned(FOnMouseEnter) then FOnMouseEnter(Sender);
end;
While running in IDE, the program will crash because OnMouseEnter is abstract.
My problems are:
1) As I already wrapped it with try-except, I hope it won't trigger IDE exception. But even I turn off "Notify on Lazarus Exception" in debugger options it still pops up, and the popup said RunError(211), NOT EAbstractError. The program runs well outside of IDE.
2) Is there a way to detect if an abstract method is implemented or not, without trying to call it and try...except?
Thanks,
Shannon
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20130124/91a44110/attachment-0002.html>
More information about the Lazarus
mailing list