The only forward definitions are for pointer and class instances (which are also pointers). So I don't think this is possible.
The easiest solution is to define oncomplete as a pointer, and then cast it to a procedure variable on use.
If you use it really a lot, you can define a record helper that returns a property that does the cast?