![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Массив изображений [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;