In pascal begin/end is only required if you wish to enter more than one line of code for a function, like so:[pascal]if (boolean_val = true) then
Result := 'True'
else
Result := 'False';[/pascal]The line/end before an else never has a semicolon.

For a large block like you posted above, the proper way to write it is:[pascal]
if (x <y>= 80) then
DoSomething
else if (intvar >= 60) then begin
DoSomethingElse;
CleanUpSomething;
end else if (intvar >= 10) then
DoAJig
else
Whatever;[/pascal]

In the case of a complex block such as I posted in this thread (and what caused my bizarre errors) it is better to be on the safe side and use begin/ends almost superfluously so as to avoid wacky problems. It depends on how convoluted your block is, but sometimes when you're in doubt ... this is the fastest troubleshooting method you've got.

I hope this helps to clear stuff up.