![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| ALeXandrK |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 342 Регистрация: 31.1.2007 Где: Санкт-Петербург Репутация: 3 Всего: 6 |
Задача в общем: Есть объект "TExercise = class(TImage)" - олицетворяет одно занятие в учебном учреждении,
есть список всех занятий "TExercisesList = class", в котором соответственно "Exercise:PExercise" - указатель на текущее активное занятие. Список и объекты создаются нормально (проверено в debug-ере), но как только я пытаюсь нарисовать текущее занятие, вылетает ошибка знакомая пожалуй всем: "Access vialation ...". По дебагеру отследил где происходит метаморфоз: при заходе в процедуру "procedure TExercisesList.Draw(const FromIndex: integer);", а точнее, когда выделяется память под переменные, объявленные в var, т.е. "var AlsoWidth,AlsoHeight:integer;". Я следил в дебагере, когда эти переменные инициализуруются, то весь текущий Exercise толи сдвигается, то ли затирается, вообщем указатель начинает указывать на полный бред. Что у меня тут не так??? Вот в чём вопрос =) Вот код:
Вот реализация классов:
Модули, необходимые для компиляции:
Вот, что я делаю:
Это сообщение отредактировал(а) ALeXandrK - 16.7.2007, 23:08 Присоединённый файл ( Кол-во скачиваний: 7 )
experiments.rar 8,04 Kb-------------------- Богат не/ни тот, у кого много, а тот, кому хватает |
||||||||
|
|||||||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 62 Всего: 128 |
сорь, но ЖЭСТЬ...
зачем нужны указатели на указатели? (переменные классовых типов - те же указатели). избавься везде от PExercise и будет тебе счастие Добавлено через 1 минуту и 52 секунды p.s. круто конечно, но как-то чего-то в архиве в аттаче для компиляции нехватает ;) Добавлено через 2 минуты и 47 секунд ну и в догонку
абсолютно ненужные в конструкторе телодвижения... -------------------- There are always someone smarter than you... |
|||
|
||||
| ALeXandrK |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 342 Регистрация: 31.1.2007 Где: Санкт-Петербург Репутация: 3 Всего: 6 |
Убрал все PExercise, но всё осталось так же
Это я уже от безысходности начал ерунду городить Спасибо за поправку! Это сообщение отредактировал(а) ALeXandrK - 16.7.2007, 22:54 -------------------- Богат не/ни тот, у кого много, а тот, кому хватает |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
1. Объект уже есть указатель.
2. Зачем придумывать свой список, когда есть уже готовые классы? 3. В приложенном файле нет проекта, а смотреть весь код на глаз лениво... Чую... Чую паскаль... |
|||
|
||||
| ALeXandrK |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 342 Регистрация: 31.1.2007 Где: Санкт-Петербург Репутация: 3 Всего: 6 |
Там все есть, просто лишнее было в Uses... (Unit2). Подправил
Это я знал, но почему то при первых попытках ссылаться в класе на себя не получалось: Delphi ругалась. Вот и пришлось правой рукой да левое ухо, а сейчас всё нормально
Думал, что так будет проще (ничего лишнего), но видимо зря пошел таким путем
А как же я всё запускаю?? Это сообщение отредактировал(а) ALeXandrK - 16.7.2007, 23:07 -------------------- Богат не/ни тот, у кого много, а тот, кому хватает |
||||||||
|
|||||||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
||||
|
||||
| ALeXandrK |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 342 Регистрация: 31.1.2007 Где: Санкт-Петербург Репутация: 3 Всего: 6 |
АААА болбес
Подправил Это сообщение отредактировал(а) ALeXandrK - 16.7.2007, 23:09 -------------------- Богат не/ни тот, у кого много, а тот, кому хватает |
|||
|
||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 62 Всего: 128 |
убери еще собак Добавлено через 2 минуты и 29 секунд да проверку на assigned(Caption.Font) при установке шрифта в 166 строке сделай Это сообщение отредактировал(а) MetalFan - 16.7.2007, 23:15 -------------------- There are always someone smarter than you... |
|||
|
||||
| ALeXandrK |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 342 Регистрация: 31.1.2007 Где: Санкт-Петербург Репутация: 3 Всего: 6 |
MetalFan : КРАСАВЕЦ!
Спасибо тебе! Все работает! Snowy: Тоже спасибо!!! -------------------- Богат не/ни тот, у кого много, а тот, кому хватает |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |