By the way I've been wondering what the 'a' signifies in the declaration of the procedures?
A consistently applied naming convention can improve readability of code, and go some way to save you from making simple errors.
An obvious "convention" you can apply is to avoid using the same identifier to refer to different variables (with the exception of trivial examples such as say i for an integer loop variable). The objfpc mode enforces this in some situations. While some coders find this unnecessarily restrictive, personally I like tramlines that keep you away from potential ambiguity and confusion.
Prefixing parameter names with "a" (if done consistently) gives an immediate visual cue that this is not a locally declared or global variable, but a parameter. In short programs this makes little difference.
However, when you write code with thousands of lines, conventions such as this can really help in deciphering code that uses literally hundreds of variables and parameters. Thinking "count" is a global variable or public property when in the current scope it is actually a parameter of your current hundred-line function (whose header has scrolled out of view) leads to immediate grief. Making a visual distinction between them at the declaration stage avoids that potential confusion.