Ответ 1
Я задал вопрос Dr Bob (я купил лицензию XE2 - поскольку уравнение 1 $= 1 € звучало немного несправедливо, Я хотел, по крайней мере, иметь реального эксперта Delphi для того, чтобы быть моим реселлером).
Вот его ответ:
Вы не ошиблись. Проблема в том, что есть три компиляторы в XE2 (как в предыдущих версиях Delphi): реальный компилятор (который отлично работает), компилятор Code Insight (который быстрее), компилятор Error Insight (который должен быть еще быстрее), и синтаксический синтаксический анализатор (который является самым быстрым).
XE2 представила ряд функций, которые сделали обычный компилятор медленнее, и дал компиляторам Code Insight и Error Insight немного беда. Прежде всего, у нас есть новые цели: Win32, Win64 и OSX которые заставляют пути поиска отличаться для каждой цели (см. $PLATFORM), а также построить конфигурацию, хотя там это только один "путь библиотеки" для каждой PLATFORM (а не для сборки Конфигурации).
Второй фактор комплексирования - это точечные наименования единиц (область охвата имена). Windows больше не Windows, но Winapi.Windows.
Я предполагаю, что эти два дополнительных фактора комплексирования проблемы для компиляторов Code Insight и Error Insight. Обратите внимание, что настоящий компилятор все еще работает. Но Error Insight показывает неправильные ошибки, а Code Insight не всегда работает для этих устройств.
Вы можете попытаться явно добавить их в проект еще раз (в котором в случае использования полного пути, как вы упомянули в своем вопросе о переполнение стека).
Итак, я боюсь, что это какой-то регресс...
Изменить при закрытии вопроса:
Первая точка заключается в том, что добавление полных путей:
SynPdf in '..\SynPdf.pas',
в .dpr действительно позволил найти файлы, но фоновый компилятор все еще потерян, не смог найти объявление класса в этом теле.
Еще один пример регрессии:
var Thread: array[0..3] of integer;
Handle: array[0..high(Thread)] of integer;
Является абсолютно безопасным синтаксисом, компилируется просто отлично, был интерпретирован предыдущим компилятором Error Insight без каких-либо проблем (работает с Delphi 5), но не работает под XE2.
Я немного разочарован в XE2 IDE. Компилятор заставляет его работать. Но IDE действительно разочаровывает. С моей точки зрения, это неприменимо. Я продолжу использовать Delphi 7 в качестве основного редактора и просто использую XE2 в качестве кросс-платформенного компилятора и отладчика.