Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.10.2011, 15:19   #1
BigDa
Пользователь
 
Регистрация: 23.10.2011
Сообщений: 16
Вопрос Массив изображений TImage

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.
BigDa вне форума Ответить с цитированием
Старый 23.10.2011, 15:48   #2
voronuk
 
Регистрация: 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-ов
voronuk вне форума Ответить с цитированием
Старый 23.10.2011, 15:58   #3
BigDa
Пользователь
 
Регистрация: 23.10.2011
Сообщений: 16
По умолчанию

Спасибо большое!
BigDa вне форума Ответить с цитированием
Старый 24.10.2011, 16:35   #4
BigDa
Пользователь
 
Регистрация: 23.10.2011
Сообщений: 16
По умолчанию

Но вот новая проблема!=( У этих только что созданных изображений я могу изменять ширину, высоту и т.д. только если сделаю это сразу после их создания и нарисования, а если это делать по ходу программы (даже если в той же процедуре и сразу после end'а циклического создания) то комп выдаёт EAccess violation!( как это исправить?
BigDa вне форума Ответить с цитированием
Старый 28.10.2011, 18:38   #5
BigDa
Пользователь
 
Регистрация: 23.10.2011
Сообщений: 16
По умолчанию

Парни, хелпайте! =(
BigDa вне форума Ответить с цитированием
Старый 25.11.2011, 19:59   #6
BigDa
Пользователь
 
Регистрация: 23.10.2011
Сообщений: 16
По умолчанию

Всё, нашёл свою ошибку!)))) оказывается SetLength(Vrag, 10); и Vrag[10]...; выдают ошибку)))))
BigDa вне форума Ответить с цитированием
Старый 26.11.2011, 08:46   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

динамические массивы индексируются ОТ НУЛЯ.

поэтому, если Вы задали SetLength(Vrag, 10);
то это означает, что в массиве будет 10 элементов:
Vrag[0], Vrag[1], Vrag[2] ... Vrag[9]
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
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