Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.03.09;
Скачать: CL | DM;

Вниз

Массив изображений   Найти похожие ветки 

 
Veter ©   (2007-04-13 21:25) [0]

Пытаюсь занести в масив 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 версии Делфи, чо за фигня незнаю. Подскажите пожалуйста может я чото нетак делаю... Заранее благодарен


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


> 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;


 
Veter ©   (2007-04-14 13:21) [2]


> Помоему лучше будет так: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;

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


 
Veter ©   (2007-04-14 13:48) [3]

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


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


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

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


 
Veter ©   (2007-04-15 15:43) [5]

Всем привет еще раз! Подскажите если кто знает а можно ли проделать
> 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 16:01) [6]

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


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


> antonn ©

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



Страницы: 1 вся ветка

Текущий архив: 2008.03.09;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.022 c
6-1181760658
Beks
2007-06-13 22:50
2008.03.09
Отправка сообщения через SMTP


15-1202110849
ПЛОВ
2008-02-04 10:40
2008.03.09
Существует ли в природе такое МФУ?


4-1184224151
DelphiN!
2007-07-12 11:09
2008.03.09
RunAs программы под SYSTEM-ом не работает


2-1202826365
smartleds
2008-02-12 17:26
2008.03.09
Народ , подскажите как мне можно узнать значение сигнала


2-1202803897
abhtr
2008-02-12 11:11
2008.03.09
2 TMainMenu на одной форме?