Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Массив изображений [D7, WinXP]


Veter ©   (2007-04-13 21:25:00) 

Пытаюсь занести в масив 36 изображений карт в формате бмп. Пишу ето так :

Rubashka:array [1..36] of Tpicture;
------------------
for i:=1 to 36 do Rubashka[i].Bitmap.LoadFromFile('Карты\'+IntToStr(i)+'.bmp');

Компилируется, но при запуске программы вылетает EAccesViolaton with message 'Acces Violation at adress 00458A1F'
Пишу ето в 7 версии Делфи, чо за фигня незнаю. Подскажите пожалуйста может я чото нетак делаю... Заранее благодарен


_Аноним   (2007-04-16 10:22:00) [1]


> antonn ©

Судя по всему можно, если TResourceStream является таки стримом, потому что сам битмап из стрима умеет грузиться


antonn   (2007-04-15 16:01:00) [2]

можно, смотри в сторону TResourceStream и TmemoryStream. не помню точно, можно ли сразу из TResourceStream загрузить в битмап...


Veter   (2007-04-15 15:43:00) [3]

Всем привет еще раз! Подскажите если кто знает а можно ли проделать
> Rubashka:array [1..36] of TBitMap; ------------------for
> i:=1 to 36 do  begin  Rubashka[i] := TBitMap.Create;  Rubashka[i].
> LoadFromFile('Карты\'+IntToStr(i)+'.bmp'); end;---------
> ---------for i:=1 to 36 do Canvas.Draw(X, Y,  Rubashka[i]);
> ------------------for i:=1 to 36 do  begin  Rubashka[i].
> Free;  Rubashka[i] := Nil; end;

только при етом использовать самодельный .RES файл???


antonn   (2007-04-15 12:14:00) [4]


> наверное когда обьявлял массив забыл поставить [1..36]
>

наверное забыл создать изображение перед использованием...


Veter   (2007-04-14 13:48:00) [5]

Спасибо огромное за подсказку, сделал. Проблема была в такое ерунде шо стыдно говорить =) наверное когда обьявлял массив забыл поставить [1..36]


Veter   (2007-04-14 13:21:00) [6]


> Помоему лучше будет так:Rubashka:array [1..36] of TBitMap;
>  ------------------for i:=1 to 36 do  begin  Rubashka[i]
> := TBitMap.Create;  Rubashka[i].LoadFromFile('Карты\'+IntToStr(i)+'.
> bmp'); end;------------------for i:=1 to 36 do Canvas.Draw(X,
>  Y,  Rubashka[i]);------------------for i:=1 to 36 do  begin
>  Rubashka[i].Free;  Rubashka[i] := Nil; end;

Vasilit, сделал как Вы написали, но опять та же беда =( Компилируется нормально, но при запуске EAccesViolation. Я вот думаю может ето у меня с самой Делфой беда? Ошибку показует в строчке :
> Rubashka[i] := TBitMap.Create;

Если ето с Делфой бок то подскажите где можно скачать нормальную...


Vasilit   (2007-04-13 21:37:00) [7]


> Rubashka:array [1..36] of Tpicture;
> ------------------
> for i:=1 to 36 do Rubashka[i].Bitmap.LoadFromFile('Карты\'+IntToStr(i)+'.
> bmp');


Помоему лучше будет так:

Rubashka:array [1..36] of TBitMap;
------------------
for i:=1 to 36 do
begin
 Rubashka[i] := TBitMap.Create;
 Rubashka[i].LoadFromFile('Карты\'+IntToStr(i)+'.bmp');
end;
------------------
for i:=1 to 36 do Canvas.Draw(X, Y,  Rubashka[i]);
------------------
for i:=1 to 36 do
begin
 Rubashka[i].Free;
 Rubashka[i] := Nil;
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо