у меня был нестандартный протокол, где приходилось циклом перебирать все биты нескольких байт. Я для этого сделал функцию типа IsClear(Byte,Bit), где внутри функции bit через CASE заменил обычными цифрами. Всё компилировалось и внутри цикла for мог написать такую конструкцию
...
IF IsClear(by,i) THEN
...
По сути обращение к биту через переменную, хотя и смотрится по-индуски. Решения лучше пока не нашел.