|
1 / 1 / 1
Регистрация: 13.08.2014
Сообщений: 65
|
||||||
Ошибка времени выполнения: Ссылка на объект не указывает на экземпляр объекта30.09.2014, 11:39. Показов 40888. Ответов 18
Метки нет (Все метки)
Нужно нарисовать 100 пикселей в случайном порядке
Выдаёт ошибку не выводит пиксели на экран
0
|
||||||
| 30.09.2014, 11:39 | |
|
Ответы с готовыми решениями:
18
Ошибка времени выполнения: Ссылка на объект не указывает на экземпляр объекта
|
|
Почетный модератор
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
|
||||||
| 30.09.2014, 13:38 | ||||||
Сообщение было отмечено kolyaz как решение
Решение
1
|
||||||
|
1 / 1 / 1
Регистрация: 13.08.2014
Сообщений: 65
|
|
| 30.09.2014, 13:52 [ТС] | |
|
Спасибо не знал
0
|
|
|
Почетный модератор
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
|
|
| 30.09.2014, 13:53 | |
|
Так если используете динамические массивы, то хоть почитайте о них.
0
|
|
|
1 / 1 / 1
Регистрация: 13.08.2014
Сообщений: 65
|
|
| 30.09.2014, 14:32 [ТС] | |
|
Я только учусь, да и
литературы маловато по паскалю в ооп
0
|
|
|
Почетный модератор
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
|
|
| 30.09.2014, 14:54 | |
|
Динамические массивы, это не ООП
Добавлено через 1 минуту Открой справку АВС.net и прочитай Добавлено через 1 минуту Кликните здесь для просмотра всего текста
Динамические массивы
Тип динамического массива конструируется следующим образом: array of тип элементов (одномерный массив) array [,] of тип элементов (двумерный массив) и т.д. Переменная типа динамический массив представляет собой ссылку. Поэтому динамический массив нуждается в инициализации (выделении памяти под элементы). Для выделения памяти под динамический массив используется два способа. Первый способ использует операцию new в стиле вызова конструктора класса: var a: array of integer; b: array [,] of real; begin a := new integer[5]; b := new real[4,3]; end. В этом случае можно также задавать инициализацию массива значениями: a := new integer[3](1,2,3); b := new real[4,3] ((1,2,3),(4,5,6),(7,8,9),(0,1,2)); Второй способ использует стандартную процедуру SetLength: SetLength(a,10); SetLength(b,5,3); Процедура SetLength обладает тем преимуществом, что при ее повторном вызове старое содержимое массива сохраняется. Если объявлен массив массивов var с: array of array of integer; то его инициализацию можно провести только с помощью SetLength: SetLength(с,5); for i := 0 to 4 do SetLength(c[i],3); Для инициализации такого массива с помощью new следует ввести имя типа для array of integer: type IntArray = array of integer; var с: array of IntArray; ... c := new IntArray[5]; for i := 0 to 4 do c[i] := new integer[3]; При описании инициализацию динамического массива можно проводить в сокращенной форме: var a: array of integer := (1,2,3); b: array [,] of real := ((1,2,3),(4,5,6),(7,8,9),(0,1,2)); c: array of array of integer := ((1,2,3),(4,5),(6,7,8)); При этом происходит выделение памяти под указанное справа количество элементов. При таком способе в инициализаторе одномерного массива должно содержаться не менее 2 элементов. Динамические массивы одного типа можно присваивать друг другу, при этом обе переменные-ссылки будут указывать на одну память: var a1: array of integer; var a2: array of integer; a1 := a2; Следует обратить внимание, что для динамических массивов принята структурная эквивалентность типов: можно присваивать друг другу и передавать в качестве параметров подпрограмм динамические массивы, совпадающие по структуре. Чтобы одному динамическому массиву присвоить копию другого массива, следует воспользоваться стандартной функцией Copy: a1 := Copy(a2); Длина массива (количество элементов в нем) возвращается стандартной функцией Length или свойством Length: l := Length(a); l := a.Length; Для многомерных массивов длина по каждой размерности возвращается стандартной функцией Length с двумя параметрами или методом GetLength(i): l := Length(a,0); l := a.GetLength(0);
0
|
|
|
1 / 1 / 1
Регистрация: 13.08.2014
Сообщений: 65
|
||||||
| 02.10.2014, 11:28 [ТС] | ||||||
|
Замучался уже голова болит
Должен рисовать новое небо при каждом нажатии на клавишу- но не рисует
0
|
||||||
|
Почетный модератор
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
|
||||||
| 02.10.2014, 12:31 | ||||||
Сообщение было отмечено kolyaz как решение
Решение
Переделал, будет работать и в .net и просто АВС.
Уже вроде писал, раз объявляете конструктор, то используйте. Ошибка конечно не из-за этого, а неверной логики программы.
1
|
||||||
|
1 / 1 / 1
Регистрация: 13.08.2014
Сообщений: 65
|
|
| 02.10.2014, 12:46 [ТС] | |
|
Спасибо, как всегда истина оказалось где-то рядом!
0
|
|
|
Почетный модератор
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
|
|
| 02.10.2014, 12:49 | |
|
Перефразируя кота Матроскина, чтобы построить новое небо, нужно иметь старое..
1
|
|
|
1 / 1 / 1
Регистрация: 13.08.2014
Сообщений: 65
|
||||||
| 03.10.2014, 18:10 [ТС] | ||||||
|
Прошу прощения конечно, уже бороду пустил, но всё таки как заставить вот это чудовище двигаться при нажатие стрелок с шагом "h"
0
|
||||||
|
Почетный модератор
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
|
|
| 03.10.2014, 18:14 | |
|
0
|
|
|
1 / 1 / 1
Регистрация: 13.08.2014
Сообщений: 65
|
|
| 03.10.2014, 18:23 [ТС] | |
|
пиксели с шагом "h"
например кнопка стрелка вверх - все пиксели побежали с шагом "h" и т.д.
0
|
|
|
Почетный модератор
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
|
||||||||||||||||
| 03.10.2014, 18:37 | ||||||||||||||||
|
Добавь метод например
0
|
||||||||||||||||
|
1 / 1 / 1
Регистрация: 13.08.2014
Сообщений: 65
|
||||||
| 03.10.2014, 18:44 [ТС] | ||||||
|
А как это сделать с общим методом для всех
0
|
||||||
|
Почетный модератор
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
|
|
| 03.10.2014, 18:47 | |
Сообщение было отмечено kolyaz как решение
Решение
Да как все делал, так и делай, как с методом Move.
Вообще принято метод рисования на новом месте называть MoveTo, а сдвиги Move
1
|
|
|
1 / 1 / 1
Регистрация: 13.08.2014
Сообщений: 65
|
|
| 03.10.2014, 18:58 [ТС] | |
|
СппаааСиииииБО!!!!!!!
Посоветуйте литературу по теме чтоб меньше доставал
0
|
|
|
Почетный модератор
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
|
|
| 03.10.2014, 19:05 | |
|
Я не знаю конкретной литературы. Начинал с Турбо Паскаля, основы получил, потом Делфи, потом АВС, везде есть похожее, методом тыка подбираю.
Добавлено через 1 минуту А в Паскаль АВС основное это встроенная Справка, и в простом и в .net Кстати если пишешь в .net то там и создавай темы, не пудри людям мозги простым АВС
0
|
|
|
1 / 1 / 1
Регистрация: 13.08.2014
Сообщений: 65
|
|
| 03.10.2014, 19:10 [ТС] | |
|
Всё или не чего, и не иначе ! Понятно
А тему вроде как перенесли
0
|
|
| 03.10.2014, 19:10 | |
|
Помогаю со студенческими работами здесь
19
Ошибка времени выполнения: Ссылка на объект не указывает на экземпляр объекта Ошибка времени выполнения: Ссылка на объект не указывает на экземпляр объекта Ошибка времени выполнения: Ссылка на объект не указывает на экземпляр объекта Ошибка времени выполнения: Ссылка на объект не указывает на экземпляр объекта Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет
значение производной при заданном х
Логарифм записывается как: (x-2)log(x^2+2) -. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|