Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/35: Рейтинг темы: голосов - 35, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 02.11.2011
Сообщений: 16

Просмотр картинки по таймеру

02.11.2011, 20:52. Показов 7020. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
При нажатии на кнопку BitBtn1 включается таймер Timer1, который синхронизирует отображение файлов в формате jpg на экран, используя компонент Image1, по следующему правилу: первое изображение выводится на экран через 1 сек после включения таймера Timer1, второе - через 2 сек , третье - через 3 сек, четвёртое - через 4 сек, пятое - через 5 сек. Затем цикл повторяется. Таким образом, на экране дисплея в компоненте Image1 должна происходить смена изображений, что позволит, например, реализовать автоматическую презентацию;
При нажатии на кнопку BitBtn2 выключается таймер Timer1.

Не могу разобраться с timer что бы он выводил изображения пожалуйста помогите. Буду благодарен
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.11.2011, 20:52
Ответы с готовыми решениями:

Вращение картинки по таймеру
В программе есть изображение (своеобразный аналог прогресс-бара), которое крутится, пока выполняется сторонний процесс, оно хранится в...

Смена картинки по таймеру
Доброе время суток! Подскажите, как настроить, чтобы image1 и image2 с помощью таймера, постоянно менялись между собой? Вот примерный...

Смена картинки в PictureBox по таймеру
Не нашел нормального решения также и ответа(Поисковиками) Собственно как реализовать смена картинки с помощью таймера. Есть...

18
 Аватар для Samrisbe
1365 / 732 / 67
Регистрация: 28.01.2011
Сообщений: 2,069
02.11.2011, 21:09
Покажи что ты сделал сам а мы посмотрим что можно придумать. А так пальцем в небо тыкать не хочется.
0
 Аватар для QVO
652 / 462 / 80
Регистрация: 26.10.2010
Сообщений: 1,263
Записей в блоге: 4
02.11.2011, 21:11
neo7777777, объяви переменную
C++
1
int iStep;
в Timer1 напиши:
C++
1
2
3
4
5
6
7
8
iStep++;
if(iStep == 5)iStep = 0;
if(iStep == 1)Timer1->Interval = 1000;
if(iStep == 2)Timer1->Interval = 2000;
if(iStep == 3)Timer1->Interval = 3000;
if(iStep == 4)Timer1->Interval = 4000;
if(iStep == 5)Timer1->Interval = 5000;
// тут код показа картинок
2
Покинул форум
3189 / 1368 / 109
Регистрация: 29.01.2010
Сообщений: 2,887
02.11.2011, 22:08
А может просто вот так:
C++
1
2
3
iStep++;
if(iStep == 5)iStep = 1;
Timer1->Interval = iStep*1000;
1
0 / 0 / 0
Регистрация: 02.11.2011
Сообщений: 16
02.11.2011, 22:59  [ТС]
На кнопке "Старт" я прописал
C++
1
2
3
4
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
Timer1->Enabled =  false;
}
На кнопке "Стоп" я прописал
C++
1
2
3
4
void __fastcall TForm1::BitBtn2Click(TObject *Sender)
{
Timer1->Enabled =  true ;
}
На таймере я прописал
C++
1
2
3
iStep++;
if(iStep == 5)iStep = 1;
Timer1->Interval = iStep*1000;
а что тогда в Image нужно прописывать что бы отображались картинки
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
02.11.2011, 23:29
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
TSringList *im_list;
im_list = new TSringList;
im_list->Add("1.bmp");
im_list->Add("2.bmp");
im_list->Add("3.bmp");
im_list->Add("4.bmp");
im_list->Add("5.bmp");
 
for (int i=0;i<im_list->Count+1;i++) {
  iStep++;  
  Timer1->Interval = iStep*1000;
  Image1->Picture->LoadFromFile(im_list->Strings[i]);
}
if(iStep == 5)iStep = 1;
1
0 / 0 / 0
Регистрация: 02.11.2011
Сообщений: 16
02.11.2011, 23:40  [ТС]
Что то я не могу понять это нужно прописать в само тело программы или в сам компонент Image1
Выкладываю то что есть
Вложения
Тип файла: rar Temp.rar (373.0 Кб, 83 просмотров)
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
02.11.2011, 23:49
Цитата Сообщение от neo7777777 Посмотреть сообщение
При нажатии на кнопку BitBtn1...
мы это обговариваем, ли что ?
0
0 / 0 / 0
Регистрация: 02.11.2011
Сообщений: 16
03.11.2011, 00:05  [ТС]
У меня теперь выводит ошибки
[C++ Error] Unit1.cpp(21): E2451 Undefined symbol 'TSringList'
[C++ Error] Unit1.cpp(21): E2451 Undefined symbol 'im_list'
[C++ Error] Unit1.cpp(22): E2303 Type name expected
[C++ Error] Unit1.cpp(22): E2379 Statement missing ;
[C++ Error] Unit1.cpp(32): E2451 Undefined symbol 'Image1'
0
 Аватар для QVO
652 / 462 / 80
Регистрация: 26.10.2010
Сообщений: 1,263
Записей в блоге: 4
03.11.2011, 00:19
neo7777777, а вы ручками пробуйте
C++
1
2
3
4
5
6
7
8
9
10
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
  iStep++;
  Timer1->Interval = iStep*1000;
  Image1->Picture->LoadFromFile(String(iStep)+".jpg");
if(iStep >= 5)iStep = 1;
}
//---------------------------------------------------------------------------
Смотрите вложение
Вложения
Тип файла: zip Презентация.zip (580.5 Кб, 102 просмотров)
2
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
03.11.2011, 00:27
да, здесь моя ошибка:
StringList
, относительно Image1 - это ваше:
Цитата Сообщение от neo7777777
используя компонент Image1
, и мне неведомо, куда вы что и как вставили .
0
0 / 0 / 0
Регистрация: 02.11.2011
Сообщений: 16
03.11.2011, 00:29  [ТС]
я просто так понял что в компоненте bitbtn1 должно быть прописано
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int iStep;
StringList *im_list;
im_list = new TSringList;
im_list->Add("1.jpg");
im_list->Add("2.jpg");
im_list->Add("3.jpg");
im_list->Add("4.jpg");
im_list->Add("5.jpg");
 
for (int i=0;i<im_list->Count+1;i++) {
  iStep++;  
  Timer1->Interval = iStep*1000;
  Image1->Picture->LoadFromFile(im_list->Strings[i]);
}
if(iStep == 5)iStep = 1;
в компоненте Timer1
C++
1
2
3
4
5
6
7
iStep++;
if(iStep == 5)iStep = 0;
if(iStep == 1)Timer1->Interval = 1000;
if(iStep == 2)Timer1->Interval = 2000;
if(iStep == 3)Timer1->Interval = 3000;
if(iStep == 4)Timer1->Interval = 4000;
if(iStep == 5)Timer1->Interval = 5000;
в компоненте Bitbtn2 прописать
C++
1
Timer1->Enabled =  true;
Правильно?
а что означает *im_list?
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
03.11.2011, 00:31
Цитата Сообщение от QVO Посмотреть сообщение
1. ...а вы ручками пробуйте
2.
C++
1
  Image1->Picture->LoadFromFile(String(iStep)+".jpg");
2. не путайте ТС - "1.bmp" - это моя отсебятина, может, у него картинки по другому называются, тогда
C++
1
[B]String(iStep)+".jpg"[/B]
не сработает и будут обиды
1. это правильно.
0
 Аватар для QVO
652 / 462 / 80
Регистрация: 26.10.2010
Сообщений: 1,263
Записей в блоге: 4
03.11.2011, 00:33
LK, я такой архив с этой темы скачал
Миниатюры
Просмотр картинки по таймеру  
0
0 / 0 / 0
Регистрация: 02.11.2011
Сообщений: 16
03.11.2011, 00:36  [ТС]
QVO, я закинул картинки для пробы
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
03.11.2011, 00:36
Цитата Сообщение от QVO Посмотреть сообщение
LK, я такой архив с этой темы скачал
тогда все в порядке , мои извинения . Но лучше переесть, чем недоспать .
0
0 / 0 / 0
Регистрация: 02.11.2011
Сообщений: 16
03.11.2011, 00:42  [ТС]
Я понял что к чему
Хочу узнать последнее что означает ошибка
[Linker Fatal Error] Fatal: Unable to open file 'ACNTBCB6_R.BPI'
нет файла где его взять?
0
 Аватар для QVO
652 / 462 / 80
Регистрация: 26.10.2010
Сообщений: 1,263
Записей в блоге: 4
03.11.2011, 00:51
neo7777777, почитайте Культин - Самоучитель. Там есть такой пример:
Листинг 3.2. Просмотр иллюстраций
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <jpeg.hpp> // обеспечивает работу с JPEG-иллюстрациями
#include <FileCtrl .hpp> // для доступа к функции SelectDirectory
 
AnsiString aPath; // каталог, в котором находится иллюстрация
TSearchRec aSearchRec; // результат поиска файла
 
void _ fastcall TForml: : FormCreate (TObject *Sender)
{
aPath = ""; // текущий каталог — каталог, из которого
// запущена программа
Imagel->AutoSize = false;
Imagel->Proportional = true;
Button2->Enabled = false;
FirstPicture () ; // показать картинку, которая
// есть в каталоге программы
}
// щелчок на кнопке Каталог
 
void _ fastcall TForml: :Button1Click (TObject ^Sender)
{
if (SelectDirectory (
"Выберите каталог, в котором находятся иллюстрации",
"",aPath) != 0)
{
// пользователь выбрал каталог и щелкнул на кнопке ОК
aPath = aPath + "\\";
FirstPicture ( ) ; // вывести иллюстрацию
}
}
// найти и вывести первую картинку
void TForml : : FirstPicture ( )
{
Imagel->Visible = false; // скрыть компонент Imagel
Button2->Enabled = false; // кнопка Дальше недоступна
Labell->Caption = "";
if ( FindFirst (aPath+ "*.jpg", faAnyFile, aSearchRec) == 0)
{
Imagel->Picture->LoadFromFile(aPath+aSearchRec.Name);
Imagel->Visible = true;
Labell->Caption = aSearchRec.Name;
if ( FindNext(aSearchRec) ==0) // найти след, иллюстрацию
{
// иллюстрация есть
Button2->Enabled = true; // теперь кнопка Дальше доступна
}
}
}
// щелчок на кнопке Дальше
void _ fastcall TForrol: :Button2Click (TObject *Sender)
{
Imagel->Picture->LoadFromFile (aPath+aSearchRec.Name) ;
Labell->Caption = aSearchRec.Name;
if ( FindNext (aSearchRec) != 0) // найти след, иллюстрацию
{
// иллюстраций больше нет
Button2->Enabled = false; // теперь кнопка Дальше недоступна
}
}
Загрузку и вывод первой и остальных иллюстраций выполняют соответст-
венно функции FirstPicture И NextPicture.
Функция FirstPicture вызывает функцию FindFirst для того, чтобы полу-
чить имя файла первой иллюстрации. В качестве параметров функции
FindFirst передаются:
П имя каталога, в котором должны находиться иллюстрации;
П структура aSearchRec, поле Name которой, в случае успеха, будет содер-
жать имя файла, удовлетворяющего критерию поиска;
П маска файла иллюстрации.
Если в указанном при вызове функции FindFirst каталоге есть хотя бы
один файл с указанным расширением, то значение функции будет равно
нулю. В этом случае метод LoadFromFiie загружает файл иллюстрации. По-
сле загрузки первой иллюстрации функция FirstPicture вызывает функцию
FindNext для поиска следующего файла иллюстрации. Если файл будет най-
ден, то кнопка Дальше будет сделана доступной.
Функция обработки события Onclick на кнопке Дальше загружает следую-
щую иллюстрацию, имя файла которой было найдено функцией FindNext
в процессе обработки предыдущего щелчка на кнопке Дальше, и снова вызывает функцию FindNext для поиска следующей иллюстрации. Если файл
иллюстрации не будет найден, то кнопка Дальше станет недоступной.
Необходимо обратить внимание на следующее. Для того чтобы иллюстра-
ции отображались без искажения, свойству Autosize компонента imagei на-
до присвоить значение false, а свойству Proportional — значение true.
Сделать это можно во время создания формы в среде разработки (устано-
вить значения свойств в окне Object Inspector) или возложить задачу на-
стройки компонента на саму программу. В последнем случае в функцию
обработки события OnCreate ДЛЯ формы (TForml: : FormCreate) НЗДО Добавить
следующие инструкции:
C++
1
2
Imagel->AutoSize = false;
Imagel->Proportional = true;
Кроме того, во время создания формы свойству Enabled кнопки Дальше
(Button2) надо присвоить значение false. Это обеспечит корректную работу
программы в том случае, если в каталоге, из которого запускается про-
грамма, нет иллюстраций. Настройку кнопки Button2 можно возложить на
ФУНКЦИЮ TForml: : FormCreate. ДЛЯ ЭТОГО В фунКЦИЮ НЗДО ДобаВИТЬ ОПС-
ратор
C++
1
Button2->Enabled = false;
Добавлено через 2 минуты
Цитата Сообщение от neo7777777 Посмотреть сообщение
Я понял что к чему
Хочу узнать последнее что означает ошибка

нет файла где его взять?
Не используйте мой проэкт
Соберите сами.

Не по теме:

Или как вариант откройте *.bpr файл и удалите слово: ACNTBCB6_R.BPI

Вложения
Тип файла: rar Просмотр bmp.rar (633.9 Кб, 93 просмотров)
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
03.11.2011, 00:56
это к разработчикам AlphaControls , я так понимаю , но, судя по всему, вы не указали расположение папки с файлами Альфы для Билдера в настройках самого Билдера : IncludePath, LibraryPath.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.11.2011, 00:56
Помогаю со студенческими работами здесь

Перемещение картинки по таймеру по синусоиде
Текст форматировать не умею, только зарегестрировался, прошу не ругать. Есть картинка на форме, должна двигать по таймеру...

Мерцание при перемещение картинки в PictureBox по таймеру
Добрый день. У меня проблема мерцания при перемещение картинки в PictureBox по таймеру. Пробовал много чего. И двойную буферизацию...

Просмотр увеличенной картинки, как у вк
Щёлкаешь по картинке, она вроде в отдельном окне открывается, но фон-сайт где она находилась. Как и какими средствами это можно сделать?

Просмотр картинки частями, а скачать каринку в полном разрешении нельзя?
Вот картинку хочу. Просмотр возможен частями, а скачать каринку в полном разрешении ниильзя? Помогите кто чем...

Программно вызывать "Просмотр картинки"
элемент формы Картинка, щёлкаем правой кнопкой, открывается контекстное меню, и там выбираем Просмотр картинки, открывается форма...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru