>>set escape on >>on escape llEsc = .t. >>oProgBar = newobject('ProgBar','progbar.vcx') >>oProgBar.SetTitle('Calculating progress for Names parsing...') >>oProgBar.SetMessage('File '+dbf('BldMstr')+ " "+transform(m.lnReccount)+" records") >>oProgBar.SetRange(0, m.lnReccount) >>oProgBar.show() >>with thisform >> .lockscreen=.t. >> scan >> if m.llEsc and .NiceEsc() >> exit >> else >> llEsc = .f. >> endif >> lnCount=m.lnCount+1 >> >>* -- Updating the percentage bar >> if mod(m.lnCount,100) = 0 && or (m.lnCount>=m.lnReccount-10) >> oProgBar.SetPos(m.lnCount) >> set message to ' Record #'+transform(m.lnCount) + m.lcMsgTail >> endif >> owner1 = BldMstr.fullname1 >> owner2 = BldMstr.fullname2 >> ownrel = "" >> stateuse = BldMstr.stateuse >> Named = NamePrsr(@m.owner1, @m.owner2, @m.ownrel, m.stateuse, PROCESS_ENABLE) >> select BldMstr && In case we're in the wrong area >> if m.Named<>"F" >> lnTally =m.lnTally+1 >> endif >> gather fields owner1, owner2, ownrel, Named memvar >> endscan >> set message to 'Process is complete...' >> if m.lnCount=m.lnReccount >> oProgBar.SetPos(m.lnReccount) >> endif >> .lockscreen=.f. >> oProgBar.release() >> oProgBar=.null. >> release oProgBar>>....