Намедни что-то необъяснимое произошло с моим проектом в PABC. Началось все с того, что я дописал кое-какой класс в библиотеку, которая используется в проекте. Добавил обновленную dll в проект. Открыл его, успешно откомпилировал, запустил, вижу:
Ошибка времени выполнения: GraphABC.GraphABCException: w or h <= 0
Стек: at GraphABC.Picture..ctor(Int32 w, Int32 h) at
textures.textures..cctor()
Но программа не вылетела. Ок. Нажимаю на контрол (он обращается к одному из объектов библиотеки) дабы проверить работоспособность программы вообще. Вижу:
The type initializer for 'textures.textures' threw an exception.
(textures - динамическая библиотека)
Далее были тщетные попытки понять, что же произошло. Дошло все до того, что удалил директиву, подключающую библиотеку. И ничего, проект успешно проходил компиляцию и выдавал те же ошибки, что и раньше.
Часть вторая.
Решил проверить таки библиотеку. Помню, что в последний раз, когда я ее запускал(писал в начале) компилировалась она успешно. Открываю проект с библиотекой, компилирую и вижу ошибку в самом неожиданном месте: компилятор перестал видеть методы из одного из подключенных модулей(модуль мой, не стандартный). Этого модуля я не касался с самого момента его добавления в проект. Описал класс, его использующий, и забыл. Ок. Решил сделать из модуля библиотеку. Добавил, откомпилировал, успешно. Перезагрузил проект, откомпилировал, компилятор снова не видит методы. И теперь он то компилируется успешно, то ругается на неизвестные методы в библиотеке.
Добавлено.
Переустановил PABC. Теперь в основном проекте появилась новая и не менее интересная ошибка и опять же в том месте, где компилятор никогда не замечал ее:
form := (Application.OpenForms.Item[0] as mainForm);
Ошибка: Нельзя преобразовать тип integer к string.
Пробуем
form := (Application.OpenForms.Item['0'] as mainForm);
Компиляция прошла успешно!
На всякий случай прикреплю пруф, ибо выглядит это все как бред.