![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 23.10.2011
Сообщений: 16
|
![]()
15:19
У меня есть изображение Image1 класса TImage. Я задал ему (как компоненту) изображение, по ходу программы регулирую его положение и размеры на форме (image1.width:=...;image1.top:=...; ). Всё меня устраивает. Но мне нужно создать ещё массив таких же изображений, причём массив с плавающим верхним пределом. Загрузка изображения в компонент из файла должна производиться во время программы, обязательна возможность изменять положение и размер конкретного рисунка из массива по ходу программы (таким же образом, как и мой image1), расширение массива. Пожалуйста, помогите сделать! P.S. Это не задачка! Это я игру делаю. P.S.S. Паскаль вроде неплохо изучил, с Дельфи знакомлюсь. P.P.P.S. Грубо говоря - image1 - это у меня главный персонаж игры, а массив изображений, который мне нужно создать - враги. 15:22 Пробовал и в начале программы добавить "Image2: array of TImage" - не вышло. Через array of TBitmap, TPicture, TGraphics тоже не получилось. Мне нужно добавлять компоненты в форму по ходу программы, в массив, и пользоваться ими, как будто они уже там были. Пора бы уже и прочесть правила раздела... У нас принято пользоваться кнопкой "Правка" для правки или дополнения своего сообщения, а не размещать их подряд. Это же относится к флуду и карается штрафом. Последний раз редактировалось mihali4; 23.10.2011 в 16:08. |
![]() |
![]() |
![]() |
#2 |
Регистрация: 12.05.2011
Сообщений: 7
|
![]()
Если надо динамический массив - то можно влоб так:
var Vrag: Array of TImage; N: integer; //кол-во эл-ов массива Vrag begin N:=10; SetLength(Vrag, N); //рисуеш например 5-го врага (нумерация с нуля) Vrag[4]:=TImage.Create(Form1); Vrag[4].Parent:=Form1; Vrag[4].Picture.LoadFromFile('с:\1.bmp'); end; Лучше правда использовать один TImage и динамический массив TBitmap-ов |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 23.10.2011
Сообщений: 16
|
![]()
Спасибо большое!
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 23.10.2011
Сообщений: 16
|
![]()
Но вот новая проблема!=( У этих только что созданных изображений я могу изменять ширину, высоту и т.д. только если сделаю это сразу после их создания и нарисования, а если это делать по ходу программы (даже если в той же процедуре и сразу после end'а циклического создания) то комп выдаёт EAccess violation!( как это исправить?
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 23.10.2011
Сообщений: 16
|
![]()
Парни, хелпайте! =(
|
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 23.10.2011
Сообщений: 16
|
![]()
Всё, нашёл свою ошибку!)))) оказывается SetLength(Vrag, 10); и Vrag[10]...; выдают ошибку)))))
|
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
динамические массивы индексируются ОТ НУЛЯ.
поэтому, если Вы задали SetLength(Vrag, 10); то это означает, что в массиве будет 10 элементов: Vrag[0], Vrag[1], Vrag[2] ... Vrag[9] |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Delphi. Массив TImage | Sna1L | Помощь студентам | 3 | 23.06.2011 16:10 |
2хм. массив из TImage | Viteef | Общие вопросы Delphi | 10 | 08.02.2010 21:14 |
Массив из объектов TImage (delphi) | Alt | Помощь студентам | 4 | 07.02.2010 22:20 |
Загрузка изображений в TImage | DelphiFun | Общие вопросы Delphi | 1 | 09.08.2009 02:04 |
Как создать и отобразить на форме массив типа TImage | YaFakir | Мультимедиа в Delphi | 3 | 26.03.2009 13:09 |