Hi -

Working in 20 right now, but have never quite gotten this to work as I expected. Even with my confusion it's a huge improvement over OnNewCurrentRecord though - so thank you.

The values for emessage are:

Constant Meaning
DDFindRequestFind Request_Find
DDFindFindByRowRec FindByRow,Find_By_Recnum
DDFindRequestAssign Request_Assign
DDFindClear Clear (not Clear_All)

Why is the one for "Clear" called "DDFindClear" - seems confusing - at least it is to me.

Then, as I step through as a view comes up, I consistently see emessage = 3 (DDFindClear), and bFound = True. if it's clearing, how is anything found?

All that aside, in the past I've allowed code in OnPostFind to run more often than I like, but I now have a situation now where I can't. In the help, it shows this:

Code:
If (eMessage<> DDFindClear and bFound) Begin
Code after that will get called when there is no record actually found. What are people using to determine if there really is a record in the buffer at that moment? (HasRecord(Self)) has not worked 100% for me here. This is in a subclass, so I can't check a specific value (can't use "If Customer.ID > "" or the like).