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

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

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.02.2010, 15:34   #1
Vigilante
 
Регистрация: 20.12.2008
Сообщений: 6
По умолчанию TImage Array?

Здравствуйте. возикла ситуация: необходим массив с картинками. Проблема в том, что nass:Array[1..const] of TImage он не создает. Что в данном случае использовать?
Vigilante вне форума Ответить с цитированием
Старый 01.02.2010, 15:39   #2
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Хм..у меня создало, но лучше, имхо использовать tbitmap.
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 01.02.2010, 15:57   #3
Vigilante
 
Регистрация: 20.12.2008
Сообщений: 6
По умолчанию

А в Uses что я пишу?
Чем лучше TBitMap?

Блин, два дня убил) Ошибку то он пишет, а копилить - компилит и ошибка пропадает. Спаисбо, это я остолоп)
А чем лучше бит мэп?

и еще, тут проблема, ругается:

Код:
const
  snowQuant=50;
var
  Form1: TForm1;
  snowPic:Array[1..snowQuant] of TImage;
  snowPicBM:Array[1..snowQuant] of TImage;
...
begin
  snowPic[1].Create(Form1);
  snowPic[1].Show;
  snowPic[1].Picture:=Image1.Picture;
  snowPic[1].Left:=25;
  snowPic[1].Top:=25;
  snowPic[1].Visible:=true;
end;

Последний раз редактировалось Stilet; 01.02.2010 в 17:09.
Vigilante вне форума Ответить с цитированием
Старый 01.02.2010, 17:11   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Чем лучше TBitMap?
TBitmap в отличие от TImage невизуальный.
А так он ничем не хуже.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.02.2010, 17:18   #5
Vigilante
 
Регистрация: 20.12.2008
Сообщений: 6
По умолчанию

так мне нужно чтобы они отображались. Ток вот немогу никак реализовать...
Vigilante вне форума Ответить с цитированием
Старый 01.02.2010, 17:56   #6
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Почитайте, что такое TBitMap, и как его употреблять внутрь. Он
1) Намного удобней (не нужно задавать много лишних параметров).
2) Несколько быстрее обрабатывается, т.к. не на мониторе, а в памяти.
3) рисуется на экране он намного проще, чем вы думаете.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 01.02.2010, 19:05   #7
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Ну о преимуществах битмапа уже рассказал Alex Cones. А рисуется он(если память не изменяет) так:
Код:
canvas.draw(bmparray[num],posx,posy);
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 01.02.2010, 19:31   #8
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Немного наоборот:
Код:
Canvas.Draw(X,Y,TBitMap);
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 01.02.2010, 22:21   #9
Vigilante
 
Регистрация: 20.12.2008
Сообщений: 6
По умолчанию

Мне надо картинку двигать, и при использовании
Цитата:
Canvas.Draw(X,Y,TBitMap);
Он по идее будет закрашивать label'ы и т.п.
Более того, почему я не могу присвоить значение "в лоб":

Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
 mass[1].LoadFromFile('C:\Documents and Settings\Роман\Мои документы\Мои рисунки\neverdie.bmp');
end;
?

Последний раз редактировалось Vigilante; 01.02.2010 в 23:27.
Vigilante вне форума Ответить с цитированием
Старый 02.02.2010, 08:29   #10
Deamonig
Форумчанин
 
Аватар для Deamonig
 
Регистрация: 19.09.2009
Сообщений: 166
По умолчанию

я так понимаю
Цитата:
mass[1].LoadFromFile('C:\Documents and Settings\Роман\Мои документы\Мои рисунки\neverdie.bmp');
это битмап. Если да то перед этим нужно его создать:
Код:
for i:=1 to n do
mass[i]:=graphics.Tbitmap.Create;
Еще нужно учесть что если загружается картинка из файла то Битмапу автоматически присваиваются ширина и высота загружаемой картинки. Если же вы создали битмап и хотите на нем рисовать посредством Canvas что либо, то нужно битмапу установить значения ширины и высоты вручную :
Код:
mass[1].Width:=X;
mass[1].Height:=Y;
Также имейте ввиду что если Битмап после завершения работы программы не удалить, то он будет "висеть" в оперативной памяти компьютера забивая ресурсы, потому в OnDestroy:
Код:
for i:=1 to n do
mass[i].Free;

Последний раз редактировалось Deamonig; 02.02.2010 в 14:51.
Deamonig вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Array CrystaLize Паскаль, Turbo Pascal, PascalABC.NET 7 29.09.2009 21:33
a:array[1..50] of integer; KulOle Паскаль, Turbo Pascal, PascalABC.NET 1 25.12.2008 19:16
Array Devikss Помощь студентам 4 19.06.2008 22:45
Array BETONOMESHALKA Общие вопросы Delphi 2 24.11.2007 22:49
Array или не array Димарик Общие вопросы Delphi 4 18.06.2007 15:16