
Прикинь, если бы компилятор говорил то же самое

В любом приличном текстовом редакторе есть контекстный поиск - берешь и ищешь непонятное слово.
Компилятор - это машина, которая особым-то умом не блещет. Поэтому определение должно встретиться раньше его использования. Если не встретилось, значит определено в каком то из юнитов. Имена этих юнитов перечислены в uses - можно поискать там.
В данном случае все просто: PData = ^TData; - на строку выше определения TData
А PHI_Event - еще на строку выше
Ну и есть негласное правило (необязательное - для облегчения собственного же понимания написанного): имена типов начинаются с 'T', а указателей на эти же типы - с 'P'