What's the difference between lives and livesleft?

Assuming Points is an Integer I would rewrite TFormGame.BonusLife to

[pascal]
procedure TFormGame.BonusLife;
begin
if Points mod 25000 = 0 then
Lives := LivesLeft+2;
end;
[/pascal]