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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.02.2010, 21:10   #1
krikaved
Пользователь
 
Регистрация: 26.02.2010
Сообщений: 66
По умолчанию динамическая смена картинок

Здравствуйте! У меня возник такой вопрос: Как сделать так, чтобы картинки работали динамически, то есть, чтобы каждая картинка загружалась с диска, а предыдущая очищалась (так как картинок очень много) с интервалом времени через 5 секунд. У меня только получилось загнать все картинки в ImageList.
krikaved вне форума Ответить с цитированием
Старый 26.02.2010, 22:34   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Тут все описано:
http://www.programmersforum.ru/showthread.php?t=66547

Загоните этот код в таймер и все...
mihali4 вне форума Ответить с цитированием
Старый 01.03.2010, 21:28   #3
krikaved
Пользователь
 
Регистрация: 26.02.2010
Сообщений: 66
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
Тут все описано:
http://www.programmersforum.ru/showthread.php?t=66547

Загоните этот код в таймер и все...

Подскажите пожалуйста как очистить предыдущие картинки. Тут получается после каждой картинки вес формы увеличивается!

Код:
var
  Form1: TForm1;
  A:Array[1..300] of TBitMap;
  J: integer;
...
procedure TForm1.Timer1Timer(Sender: TObject);
var I:Integer;
begin
 For I:=1 to 300 do
  Begin
   A[i]:=TBitMAp.Create;
   A[i].LoadFromFile('D:\Image\'+IntToStr(I)+'.bmp');
  END;

 Inc(J);
 if J=301 Then J:=1;
 Image1.Canvas.Draw(0,0,A[J]);
end;
У нас принято оформлять код специальным тэгом - при помощи кнопочки "#".
Только...
И не значком #.
И не РНР-кодом.
И не значком цитаты.
И не собственными "ручками".
Рекомендую. Помимо общих правил форума есть и дополнения к ним в каждом разделе...
Модератор


Прекращайте ненужное цитирование предыдущих сообщений!
Рекомендую. Помимо общих правил форума есть и дополнения к ним в каждом разделе...
А кроме кнопки "Цитата" есть просто окно для ввода своего сообщения.
Модератор

Последний раз редактировалось krikaved; 02.03.2010 в 03:51.
krikaved вне форума Ответить с цитированием
Старый 01.03.2010, 21:48   #4
Marsel737
Форумчанин
 
Аватар для Marsel737
 
Регистрация: 09.11.2009
Сообщений: 669
По умолчанию

Код:
A[i].Free;
выделяй код используя #
Я не всегда знаю, о чем говорю, но знаю, что прав. © Мухаммед Али.
К чёрту обстоятельства. Я создаю возможности. © Брюс Ли
Marsel737 вне форума Ответить с цитированием
Старый 02.03.2010, 03:28   #5
krikaved
Пользователь
 
Регистрация: 26.02.2010
Сообщений: 66
По умолчанию

А почему, когда делаешь динамическую смену картинок с помощью массива, то выделяется больше памяти, чем когда делаешь с помощью ImageList? Под массив больше выделяется памяти?
Я хочу сделать слайды из фото одинаковых размеров с интервалом в 5 секунд. Эта программа будет постоянно работать с автозагрузки до завершения работы. Эта программа должна работать динамически, весить минимум и занимать минимум памяти. Как это лучше всего сделать, подскажите пожалуйста!
Вот с помощью массива:
Код:
var
  Form1: TForm1;
  A:Array[1..300] of TBitMap;
  J: integer;
...
procedure TForm1.Timer1Timer(Sender: TObject);
var I:Integer;
begin
 For I:=1 to 300 do
  Begin
   A[i].Free;
   A[i]:=TBitMAp.Create;
   A[i].LoadFromFile('D:\Image\'+IntToStr(I)+'.bmp');
  END;

 Inc(J);
 if J=301 Then J:=1;
 Image1.Canvas.Draw(0,0,A[J]);
end;

Последний раз редактировалось krikaved; 02.03.2010 в 03:51.
krikaved вне форума Ответить с цитированием
Старый 02.03.2010, 07:49   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
krikaved
А зачем ты мх сразу в память гонишь?
По мере надобности подгружай из файла и делов то... А вместо bmp используй jpeg.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.03.2010, 07:56   #7
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Код:
 A[i].Free;
   A[i]:=TBitMAp.Create;
   A[i].LoadFromFile('D:\Image\'+IntToStr(I)+'.bmp');
||
\/
Код:
   A[i]:=TBitMAp.Create;
   A[i].LoadFromFile('D:\Image\'+IntToStr(I)+'.bmp');
   A[i].Free; - убрать в цикл по уничтожению формы.
И уберите это из таймера на OnCreate!
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 02.03.2010, 19:36   #8
krikaved
Пользователь
 
Регистрация: 26.02.2010
Сообщений: 66
По умолчанию

Так если убрать в OnCreate, то как картинка будет прорисовываться.
Я как-то не так делаю! Что должно быть в цикле таймера?
Код:
var
  Form1: TForm1;
  A:Array[1..300] of TBitMap;
  J: integer;
  s:string;
  I:Integer;
...
procedure TForm1.FormCreate(Sender: TObject);
begin
   s := IntToStr(i);
   if i<10 then
     begin
     s := '00' + s;
     end
   else
     begin
     s := '0' + s;
     end;
  A[i]:=TBitMAp.Create;
  A[i].LoadFromFile('D:\Image\'+ s +'.bmp');
  A[i].Free;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var I:Integer;
begin
 For I:=1 to 300 do
 Begin
 
 END;

 Inc(j);
 if J=301 Then J:=1;
 Image1.Canvas.Draw(0,0,A[j]);
end;
Цитата:
Сообщение от Alex Cones Посмотреть сообщение
Код:
 A[i].Free;
   A[i]:=TBitMAp.Create;
   A[i].LoadFromFile('D:\Image\'+IntToStr(I)+'.bmp');
||
\/
Код:
   A[i]:=TBitMAp.Create;
   A[i].LoadFromFile('D:\Image\'+IntToStr(I)+'.bmp');
   A[i].Free; - убрать в цикл по уничтожению формы.
И уберите это из таймера на OnCreate!
Я не очень хорошо Вас понял, расшифруйте пожалуйста. В программировании я новичок

Последний раз редактировалось Stilet; 04.03.2010 в 09:28.
krikaved вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рандомная смена картинок в хедере soonner JavaScript, Ajax 7 14.04.2010 20:19
Смена картинок (Image1,Imag2,Image3) кнопкой DimOn4Ik Помощь студентам 9 17.10.2009 12:56
Смена картинок по дате Kendel JavaScript, Ajax 6 05.05.2009 13:00
Динамическая память liver1981 Общие вопросы C/C++ 5 22.04.2009 09:16
Почасовая смена картинок П@Bел JavaScript, Ajax 5 12.04.2009 01:41