В Delphi 7 всякий раз, когда я контролирую + щелкаю функцию / процедуру, она приводит меня к этой функции / процедуре.Но это не работает в Delphi XE - по крайней мере, не со всеми функциями.У меня есть функция Associate в ExtUtils.pas. Функция правильно скомпилирована, поэтому компилятор может найти ExtUtils.pas (и, конечно, ExtUtils добавляется в предложение Uses, а его папка добавляется в «Путь к библиотеке»).Но когда я контролирую + щелкаю по функции или названию устройства, это не приводит меня туда.
Любой способ исправить это?
ОБНОВЛЕНИЕ1: Кроме того, Control + щелчок по функции (объявить в текущем блоке) не перемещает курсор в разделе ИНТЕРФЕЙС, где функцияобъявлен
UPDATE2:
Я временно положил модуль ExtUtils в папку проекта, и теперь он работает.Итак, Control + Click сам по себе работает, но кажется, что в среде IDE возникают проблемы с поиском устройства, даже если его папка присутствует в пути к библиотеке и пути просмотра.
Подобные отчеты:
http://webcache.googleusercontent.com
http://webcache.googleusercontent.com
http://cc.embarcadero.com/Item/28269
Один отчет прямо здесь (см. Ответы ниже)
Новый тест:
Я полностью удалил Delphi (и вручную удалить файлы и остатки реестра).Затем переустановил снова.Никаких дополнительных инструментов, кроме CodeSite, не было установлено, даже базы данных.Затем я создал новый проект.Содержит кнопку.Когда я нажимаю кнопку, запускается процедура TestMe, которая определена во внешнем файле PAS с именем TestUnit.Pas.Я добавил путь к этой библиотеке в Путь к библиотеке и Путь просмотра.Но процедура Control + Click на TestMe все еще не работает!Если навести указатель мыши на процедуру TestMe, всплывающее окно сообщает «Объявлено в TestUnit», где слово «TestUnit» представляет собой синюю ссылку.Если я нажимаю на нее, я слышу системный звук Windows, но IDE не доставляет меня туда (к устройству).
Процедура TestMe такая:
procedure TestMe;
begin
Beep(800, 500);
end;
Если я контролирую +щелкните по процедуре Beep, она приведет меня к Windows.pas.Итак, это работает.Пожалуйста, дайте мне знать, если вы имеете в виду другой тест.
ОБНОВЛЕНИЕ:
И теперь это работает!Без видимых причин!Я просто открыл и закрыл и скомпилировал проект.Но я не делаю изменений в Delphi, кроме этих двух: параметры автосохранения-> файлы редактора и параметры проекта.
ОБНОВЛЕНИЕ:
Это не может быть !!!
Итак, теперь я могу получить доступ к TestUnit.Pas файл, когда я контролирую + нажмите на процедуру TestMe.Итак, я переместил исходный файл PAS (ExtUtils.pas), который не хотел работать в моем первоначальном тесте (до переустановки Delphi), в ту же папку, где находится TestUnit.pas.Угадайте, что: я могу открыть (с помощью control + click) TestUnit.pas, но не ExtUtils.pas !!!!
Delphi действует так странно и непоследовательно!
ОБНОВЛЕНИЕ:
Я редактировал ExtUtils.pas и теперь я не могу открыть ОПЯТЬ TestUnit.pas.Кен Уайт не позволит мне сказать, что у Дельфи могут быть ошибки.Поэтому я не могу использовать «ошибку» вместе с «Delphi».Кто-нибудь может соединить эти слова для меня?
ОБНОВЛЕНИЕ:
Я полностью удалил любую ссылку на ExtUtils.pas - поэтому я восстановил проект до того места, где он работал (с TestUnit).Но теперь ошибка сохраняется.Даже если за несколько секунд до этого он работал с TestUnit, теперь он снова не работает.
ОБНОВЛЕНИЕ:
Теперь я понимаю важную вещь: в моем исходном коде (в тестовом проекте) у меня есть одна строка компилируемого кода:
procedure TForm1.Button1Click(Sender: TObject);
begin
TestMe;
end;
Синие точки делаютне появляется для этого кода - так как он не был бы скомпилирован.В те несколько минут, когда программа работала, я видел синие точки.Я также исключил «Параметры автосохранения-> Файлы редактора и Параметры проекта» в качестве возможной причины этой проблемы.
ОБНОВЛЕНИЕ:
Я нашел способ решить проблему ... на несколько минут: я перемещаю проект и библиотеку в другую папку (в любом месте это будет сделано). Контрол + щелчок будет работать некоторое время. Это даже работает, если я помещаю файлы обратно в исходную папку. Итак, похоже, что Delphi хранит некоторый кеш некоторых файлов. До тех пор, пока кеш не работает, и он сохраняет кеш, Ctrl + click не будет работать. Но когда я перемещаю файлы, он должен воссоздать этот кеш, чтобы он работал до тех пор, пока проблема не появится снова и не сохранится в кеше.