Здравствуйте, Vadimio, Вы писали:
Как минимум, должно отработать так:
type
PSomeRecord = ^TSomeRecord ;
TSomeFunc = procedure ( SR : PSomeRecord ) ;
TSomeRecord = record SomeFunc : TSomeFunc ; end ;
Более чистого прямого варианта, боюсь, нет — предобъявления типов разрешены только для указателей (и, в частности, для классов).
Если Вы конвертите — то есть собираетесь использовать сишную библиотеку — думаю, это естественный вариант. Если переводите код на Паскаль — я бы задумался на тему "не сделать ли это классом".