Sorry I'm still very new to Object Pascal and am not sure what you're saying. To my understanding for normal Pascal it is recommended where possible to just use local variable declarations and then pass them to other procedures or functions that need access to them.
You are right that that is the recommended way of passing around variables/values. However the buttonclick methods are predefined and don't offer a way to pass along variables that way. So the best next thing is to create/add a form variable to store your value(s) (as suggested by Blaazen)
It is also allowed to use a global variable (or global to the unit by placing the declaration in your implementation section) also as suggested by Blaazen, however when applying the same rules that you are trying to follow then that would be the most 'evil' way of doing it (which doesn't mean it is bad to do it anyway as sometimes you just can't accomplish certain tasks without it, at least not when you are new to objectpascal).
Even the fcl/lcl makes use of global declared variables because sometimes it just makes life a lot easier.
It common to add your own properties/methods/variable declarations to your form or implement your own class that takes care of keeping track of your 'global' variables in an organised manner.