Форум: "Прочее";
Текущий архив: 2008.08.24;
Скачать: [xml.tar.bz2];
ВнизСтранности с набором кода Найти похожие ветки
← →
abhtr (2008-07-01 15:52) [0]Обычно, если я в коде (в *.pas файле) набираю название объекта, например Label4, а затем набираю точку, то выпадает список свойств, функций и т.д. И все очень хорошо...
Вернулся к модулю, который уже работает с тем, чтобы добавить еще код.
Набираю: Label4, а внизу выдается сообщение:
"[Pascal Error] Work.pas(1): Unable to invoke Code Completion due to errors in source code"
т.е. вроде бы ошибка в коде. Ищу и не нахожу. Компиляция тоже проходит успешно. Локализовал место, до которого "выпадение свойств" происходит успешно, затем идет какая-то облась, где вообще ничего не выдается, а затем уже попадаю в область, где выдается сообщение об ошибке.
Весь код длинноват, но если нужно покажу...
Подскажите, пожалуйста, в чем может быть дело, и как эту ошибку убрать?
← →
Плохиш © (2008-07-01 15:57) [1]
> Подскажите, пожалуйста, в чем может быть дело, и как эту
> ошибку убрать?
Подожди, пойду кофея заварю, потом погадаю...
← →
Ega23 © (2008-07-01 15:59) [2]Вариантов - масса. Сделай полный билд всей группы проектов - сразу увидишь где.
Либо DCU все потри.
← →
Виталик (2008-07-01 16:09) [3]Такая ошибка была когда наш админ в колледже Делфи 7 принес.
Студентам в принципе все равно было, а для себя он перешел на Делфи 6 и чепуху такую больше у себя не видел. Д7 вообще недоколыханная.
← →
abhtr (2008-07-01 16:19) [4]
> пойду кофея заварю
Приятного апетита :о)
> Сделай полный билд
Сделал Project->Build All Project.
Но ничего не увидел. Все прошло успешно.
Все файлы *.dcu удалил и скомпиллировал снова.
Я правильно все сделал? Но все осталось по-прежнему :о(
← →
Ega23 © (2008-07-01 16:19) [5]
> Д7 вообще недоколыханная.
:) Откровенно говоря, я не знаю более стабильной версии Delphi, чем 5 и 7. А с учётом того, что пятёрка уже очень сильно устарела....
← →
Ega23 © (2008-07-01 16:20) [6]
> Но все осталось по-прежнему :о(
А какой проект активный?
← →
Anatoly Podgoretsky © (2008-07-01 16:25) [7]> abhtr (01.07.2008 15:52:00) [0]
Не надо ее убирать, эта ошибка не влияет на компиляцию.
Но вообще то можешь подождать, пока мы с Плохиш кофе напьемся.
← →
abhtr (2008-07-01 16:27) [8]
> А какой проект активный?
Не совсем понял вопрос. Но у меня открыт тот, в котором и наблюдается указанная странность... Я понимаю, что он и является активным. Или я не правильно понял?
← →
abhtr (2008-07-01 16:32) [9]
> можешь подождать, пока мы с Плохиш кофе напьемся
надеюсь кофе будет удачным :о)
← →
Ega23 © (2008-07-01 16:43) [10]
> Не совсем понял вопрос. Но у меня открыт тот, в котором
> и наблюдается указанная странность... Я понимаю, что он
> и является активным. Или я не правильно понял?
У тебя один проект открыт, или группа проектов (project group)?
← →
abhtr (2008-07-01 16:45) [11]Один.
← →
Плохиш © (2008-07-01 16:45) [12]
> Ega23 © (01.07.08 16:43) [10]
Ну чё ты над ним издеваешься?
Хотя, если только телепатор испытываешь, но смотри не спали :-)
← →
Ega23 © (2008-07-01 16:51) [13]A Label4 у тебя есть? Я имею ввиду не компонент на форме с Caption="Label4", а именно TLabel с Name="Label4"?
← →
abhtr (2008-07-01 17:35) [14]Извините, что задержался с ответом. Отвлекли.
Если я правильно понял, никто не хочет на такие "глупые" вопросы отвечать.
Извините, что отнял у Вас время.
← →
Ega23 © (2008-07-01 17:36) [15]
> Если я правильно понял, никто не хочет на такие "глупые"
> вопросы отвечать.
Ну как знаешь. "Умываю руки".
← →
Владимир (2008-07-04 09:00) [16]Скорее всего у тебя Дельфа нашла какую-то структуру, нерациональную с ее точки зрения. Например, объявил функцию или переменную и не использовал нигде. Или параметры где-то криво передал и т.д.
Это должно в сообщениях при компиляции отображаться. А если нет такого - значит снеси ее и вновь поставь, а то она когда долго стоит начинает "стареть". :-)
← →
Ega23 © (2008-07-04 09:20) [17]
> А если нет такого - значит снеси ее и вновь поставь, а то
> она когда долго стоит начинает "стареть". :-)
LMD
← →
Anatoly Podgoretsky © (2008-07-04 09:29) [18]
> а то она когда долго стоит начинает "стареть". :-)
Это когда долго лежит.
← →
abhtr (2008-07-04 10:22) [19]За прошедшее время удалось выяснить следующее. Эффект этот имеет место только в одном модуле моего проекта. В других модулях все работает нормально. Более того в "дефектном" модуле этот эффект возникает в процедуре которая выводит отчет в Word, а внутри этой процедуры этот эффект начинается только после цикла
"while not dbgWork.DataSource.DataSet.Eof do…"
причем внутри этого цикла все работает, а после "… end:" перестает.
Как мне приблизительно объяснили, данный эффект может возникать в 2-случаях: либо после кода, в котором используется "позднее связывание", либо если получается "сумеречный" код, который может возникнуть, возможно, от неправильных имен переменных. Например, одинаковое имя для разных переменных.
Переменные я проверил, но ничего подозрительного не нашел.
Вариант с "поздним связыванием" вроде бы лучше объясняет, но непонятно, почему, этот эффект возникает не сразу после использования операторов "позднего связывания", а только "по прошествии" многих строк с "поздним связыванием."
Опять-таки, если надо могу выложить код процедуры, но это более 200 строк, а весь модуль более 2000 строк.
← →
Владимир (2008-07-04 10:56) [20]Короче, кидай свой проект на vlasavelev@yandex.ru. Только, пожалуйста, в архиве!
← →
Anatoly Podgoretsky © (2008-07-04 11:26) [21]> abhtr (04.07.2008 10:22:19) [19]
Не с Интернета ли ты брал куски.
← →
abhtr (2008-07-04 16:29) [22]
> Не с Интернета ли ты брал куски.
Да, куски кода брал из статьи опубликованной в интернете. Но в статье не было конструкции while...
← →
Anatoly Podgoretsky © (2008-07-04 16:44) [23]> abhtr (04.07.2008 16:29:22) [22]
Не важно, при копирование с Сети, некоторые невидимые символы, выглядят как пробел или окончание строки, но приводят к полной или частичное не работоспособности программы. По поведению очень похоже на подобное.
← →
abhtr (2008-07-04 16:49) [24]О, нет! Я имел ввиду, что я "списывал" код со статьи. А набирал я его руками...
Хотя ...
Попробую перенабрать текст.
Но это уже в понедельник.
Дома, пока, возможности работать нет.
← →
Anatoly Podgoretsky © (2008-07-04 20:07) [25]> abhtr (04.07.2008 16:49:24) [24]
Изучи подозрительную часть хекс редактором, обращать внимание на наличии пары 13+10 в конце строк и невидимые пробелы.
← →
GrayFace © (2008-07-05 00:39) [26]Закомментируй цикл, проверь, раьотает ли, закомментируй часть цикла, проверь и т.д. В конце концов найдешь проблемный кусочек. У меня уже несколько раз было, что правильный код не компилялся.
← →
abhtr (2008-07-07 12:25) [27]Совет
> GrayFace
помог выделить строчку, которая дает этот эффект. Это:W.Selection.Start := W.Selection.End;
Пояснения:
var
W :variant;
begin
...
W:=CreateOleObject("Word.Application");
...
//Перемещаем в конец документа
W.ActiveDocument.Range.Select;
W.Selection.Start := W.Selection.End;
...
end;
Слово End компиллятор выделяет жирным, как свою родную команду, но контекст, видимо, интерпретирует двояко. Поэтому и не выдает ошибку при "основной" компиляции, а "после точки" - ошибка.
Подскажите, можно ли как-то обойти эту команду (.End)?
← →
savyhinst © (2008-07-07 14:44) [28]Может быть,
Ctrl+Click по слову end, после чего открывается юнит, курсор перемещается на слово End, заменяешь слово end любым бругим словом, пробуешь, если глючит - значит делаешь обратно на слово end...
← →
интелллигент (2008-07-07 14:48) [29]У меня тоже иногда так бывает. Я просто жму после "label4." ctrl + SPACE и вылазит то самое меню.
← →
++vist++ © (2008-07-07 16:29) [30]Все дело в том, что система Delphi не любит когда константы объявляют после переменных!
← →
abhtr (2008-07-07 18:24) [31]
> ++vist++
Попробовал переставить. Ничего не изменилось.
Все восстанавличается только при исключении строчки с .END.
Пробовал заменить на EndOf, но он используется с параметрами, работающими при "позднем связывании"Selection.EndOf(Unit:=wdParagraph, Extend:=wdExtend)
Так что пока ничего не получается, как только то, что этот код я переместил в конец модуля, чтобы не мешал делать вставки нового кода, до этой строчки.
← →
Юрий Зотов © (2008-07-08 03:57) [32]Похоже, End воспринимается парсером IDE (но не компилятором), как ключевое слово языка. Естественно, для него возникает синтаксическая ошибка - отсюда и сообщение.
← →
ketmar © (2008-07-08 11:08) [33]потрясающе, сколько сюда понабегало. а по делу один ЮЗ сказал. ну, и я примажусь к верному ответу: у IDE и компилятора парзеры разные. поскольку IDE делали боги, они никак не могли предположить, что их парзер лажанётся. и потому пункт «это не ключевое слово, дура!» в меню не положили. выход простой — плакать и смириться.
---
All Your Base Are Belong to Us
← →
Anatoly Podgoretsky © (2008-07-08 12:02) [34]> ketmar (08.07.2008 11:08:33) [33]
Писать надо end.
А не наоборот.
← →
ketmar © (2008-07-08 12:21) [35]>[34] Anatoly Podgoretsky © (2008-07-08 12:02:00)
да вообще писать не надо, всё уже написано.
---
Understanding is not required. Only obedience.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2008.08.24;
Скачать: [xml.tar.bz2];
Память: 0.54 MB
Время: 0.06 c