17.01.2002, 16:55 | #1 |
Участник
|
Проблема с объявлением переменных
В ClassDeclaration я объявляю переменную
int check; В неком методе класса пытаюсь ее инициолизировать check = 0; Класс нормально компилится, но при запуске формы, в которой используется класс, выдается ошибка: Вставил до инициализации строки print(enum2str(typeof(check))); print(check); Получается такое окно: Т.е Аксапта почему-то думает, что check имеет тип RECORD. Объясните пожалуйста, из-за чего это все и как с этим бороться?
__________________
Shestakov |
|
17.01.2002, 16:56 | #2 |
Участник
|
P.S.
Ошибка вот в этом месте(на строку выше синей линии)
__________________
Shestakov |
|
17.01.2002, 17:12 | #3 |
Участник
|
Проблема решилась(т.е. теперь пишется, что переменная имеет класс integer и все работает). Но вот решил я ее очень странно - просто долго менял туда-сюда местами строки в ClassDeclaration. В итоге раз на 10-й все заработало...
__________________
Shestakov |
|
22.09.2003, 13:57 | #4 |
Участник
|
Столкнулся с абсолютно аналогичной проблемой:
Попытка добавить в готовый класс новую переменную приводит к тому, что все операции с этой переменной оказываются некорректными (неправильные инициализация и использование из-за якобы различных типов). В случае добавления переменной в класс проблема решилась инкрементной компиляцией непосредственного предка класса. Такая же проблема появлялась при добавлении переменной в classDeclaration объекта ReportRun. Решилась инкрементной перекомпиляцией предков класса, который вызывал данный отчет. |
|
22.09.2003, 14:06 | #5 |
Участник
|
скорее всего у вас 2.5 и не куплена лицензия на исходный код.
В этом случае с классами многое чего не происходит. Например, не происходит компиляция всего класса. Особенно при изменении classDeclaration. Вам необходимо вручную "обходить" все измененные методы класса и вручную заставлять Аксапту компилировать. |
|
22.09.2003, 14:09 | #6 |
----------------
|
компиляция
В таких случаях хорошо помогает инкрементная компиляция класса
|
|
22.09.2003, 14:13 | #7 |
Участник
|
кстати, она тоже не работает на классах, если нет лицензии на исходный код
|
|
22.09.2003, 15:24 | #8 |
Участник
|
нет, версия 3.0 SP1 и лицензии есть на все (точнее, не буду утверждать про "все"), но на исходники-то точно есть.
Однако, ситуация, действительно, сильно похожа на то, что classDeclaration не компилируется. |
|
22.09.2003, 15:38 | #9 |
Участник
|
Странно. Тогда совет wamr'а должен помочь.
У меня в нормальных условиях такого еще не было. |
|
24.09.2003, 17:21 | #10 |
Участник
|
Компилятор в трешке чудит куда больше, чем в 2.5. Если при модификации, к примеру, ClassDeclaration новая декларация добавляется в конец, то всё нормально. Если же добавить её где-то посередине, причем соседние переменные имееют другой тип, то начинает глючить ... Компилятор подхватывает чужой тип. Спасает, как уже было отмечено, перекомпиляция проекта.
Можно также отметить случаи, когда немозвожно сохранить в AOT'е вновь созданный объект. Приходится производить ряд манипуляций мышкой, прежде чем активируется кнопка save. Нельзя создать новый метод в заблокированном тобой же объекте. А самое печальное, когда ломаются индексы, и при попытке создать новый объект в AOT'e система пытается присвоить ему номер уже существующего... |
|
|
За это сообщение автора поблагодарили: alex55 (1). |
Теги |
баг, ax3.0 |
|
Похожие темы | ||||
Тема | Ответов | |||
Проблема с единицей измерения | 4 | |||
Проблема с messageBox | 13 | |||
Проблема с созданием объекта | 33 | |||
Проблема: русские шрифты в отчетах, формируемых на сервере. | 3 | |||
Проблема: Переход с 2.5 на 3.0 | 1 |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|