Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
er_nesto
2 / 2 / 0
Регистрация: 08.04.2012
Сообщений: 17
#1

Reset приложения или как снять все задачи внутри программы - C++

22.08.2012, 15:11. Просмотров 696. Ответов 8
Метки нет (Все метки)

всем привет.
столкнулся с проблемой: приложение после клика кнопки должно выдавать анимацию на Image по картинке, т.е. в цикле постоянно открывать новую картинку из папки... но тут такое дело, что надо сделать так, чтоб при повторном нажатии этой же кнопки (ну или другой), пошло "воспроизвидение" другой анимации с начала, а после завершения - не продолжалась старая, т.е. снимались все задачи приложения...
мне трудно объяснить, но попробую еще так:
есть десять картинок с анимации "А", и 10 с анимации "B".
1) клик по кнопке, которая включает "А"
2) когда выполняется "А", жмём кнопку вызова "В"
3) получается:
АААА(клик)ВВВВВВВВВВАААААА

код ф-ции рисования в придачу)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void Draw (AnsiString name, int num, bool sound)
{
 if (sound)
 {
   Form1->MediaPlayer1->FileName = name+".mp3";
   Form1->MediaPlayer1->Play();
 }
 for (int i = 1; i <= num; i++)
 {
   Form1->Image1->Picture->LoadFromFile(name+"_ ("+i+").jpg");
   Sleep(t);
   Application->ProcessMessages();
   Form1->Image1->Repaint();
 }
}
Добавлено через 3 часа 13 минут
что никто не знает как это сделать? просто ребята, очень срочно(
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.08.2012, 15:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Reset приложения или как снять все задачи внутри программы (C++):

Запуск программы или файла с консольного приложения - C++
Помогите пожалуйста. Не могу найти нигде как запустить файл или программу с консольного приложения. Очень срочно нужно. p.s. Заранее...

Выделить все CheckBox или снять выделение - C# WPF
Допустим есть несколько CheckBox'ов. При этом есть один, который активизирует все остальные, на подобие &quot;Выбрать все&quot; (IsChecked=true ,...

Программно снять или поставить все флаги CheckBox - Visual Basic .NET
Народ помогите немного! Суть вопроса, есть несколько CheckBox1, 2..19 , соответственно есть CheckBox при событии которого все CheckBox...

Запуск приложения внутри программы - C#
В общем как это можно реализовать? При запуске программы, внутри ее запускалась другая.

Как в Javascript снять галочку с программы? - JavaScript
Есть опции в параметры папок. Надоело постоянно нажимать Alt, и выставлять вручную галки. Можно это сделать автоматически?Чтобы поставилась...

Как снять все чекбоксы? - jQuery
у меня такой код: $(&quot;#all&quot;).click(function(){ // для выделение if($(&quot;#all :checked&quot;)){ ...

8
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
22.08.2012, 15:20 #2
никто не знает архитектуры твоего приложения, потому и сказать нечего.
0
er_nesto
2 / 2 / 0
Регистрация: 08.04.2012
Сообщений: 17
22.08.2012, 16:34  [ТС] #3
Цитата Сообщение от novi4ok Посмотреть сообщение
никто не знает архитектуры твоего приложения, потому и сказать нечего.
единственное что мне нужно - ф-ция которая снимает все текущие действия программы, но не закрывает её

Добавлено через 12 минут
возможно так более ясно будет:

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
void Draw (AnsiString name, int num, bool sound)
{
 if (sound)
 {
   Form1->MediaPlayer1->FileName = name+".mp3";
   Form1->MediaPlayer1->Play();
 }
 for (int i = 1; i <= num; i++)
 {
   Form1->Image1->Picture->LoadFromFile(name+"_ ("+i+").jpg");
   Sleep(t);
   Application->ProcessMessages();
   Form1->Image1->Repaint();
 }
}
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 
 Draw("animation_A\\pict_num", 33, true);
}
 
void __fastcall TForm1::Button2Click(TObject *Sender)
{
 
 Draw("animation_B\\pict_num", 33, true);
}
функция Draw: AnsiString name - место файла для чтения, int num - количество картинок для чтения по-очереди, bool sound - решает, будет ли играть заданая музыка вместе с анимацией.

ситуация: нажата кнопка Button1, идет обработка, играет анимация. не дождавшись выполнения всего цикла в Draw, я нажимаю Button2. сразу идет обработка второй анимации, после завершения чего - продолжается первая анимация с того места, где прервалась.

Вопрос: как отменить обработку 1й анимации при вызове 2й? какую ф-цию юзать перед Draw?
0
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
22.08.2012, 17:40 #4
я никогда ничего нового не делал на с++ в дотнет (и тебе не советую, это - инвалид по рождению. но раз уж начал - нужно разобраться), посуму вопросов у меня много.
как между собой связаны эти две формы (я вижу две по крайней мере)?
если исходить из предположения, что ф-я Draw и обработка кнопок выполняются в разных трэдах, то напрашивается возможное решение - Sleep(); заменить на WaitForMultipleObjects(), с таким же временем ожидания, как и у Sleep, и ждать или истечения по таймеру, или сигнала события (создать). если событие просигналило - сбросить и выходить из цикла. по нажатию кнопки сигналить событие, затем запускать анимацию. примерно так.
0
er_nesto
2 / 2 / 0
Регистрация: 08.04.2012
Сообщений: 17
22.08.2012, 17:58  [ТС] #5
Цитата Сообщение от novi4ok Посмотреть сообщение
как между собой связаны эти две формы
да не, у меня одна форма))

дальше я почти ничего не понял.
Цитата Сообщение от novi4ok Посмотреть сообщение
если событие просигналило - сбросить и выходить из цикла. по нажатию кнопки сигналить событие, затем запускать анимацию
если так делать - нагрузка на проц будет куда больше. просто мне кажется что есть какаята ф-ция из стандартных библиотек, которая тупо останавливает всё что делала программа, просто не знаю как гуглу это объяснить. а с описаными Вами методами я не знаком, ничего не пойму(
0
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
22.08.2012, 18:05 #6
а что такое тогда Form1, и что такое - ТForm1?
кому принадлежит Draw()?
0
er_nesto
2 / 2 / 0
Регистрация: 08.04.2012
Сообщений: 17
22.08.2012, 18:18  [ТС] #7
Form1 - название формы, так я обращаюсь к экземпляру класа TForm. TForm - класс форм в Builder-е
0
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
22.08.2012, 18:41 #8
Цитата Сообщение от er_nesto Посмотреть сообщение
Form1 - название формы, так я обращаюсь к экземпляру класа TForm. TForm - класс форм в Builder-е
т.е. ты давишь на кнопку, и у тебя в обработчике этого события начинает крутиться цикл этой анимации? я так понимаю, что пока она не закончится, никаких кнопок ты больше нажать не можешь, как получается АААББББББББААА?
0
er_nesto
2 / 2 / 0
Регистрация: 08.04.2012
Сообщений: 17
22.08.2012, 18:55  [ТС] #9
Цитата Сообщение от novi4ok Посмотреть сообщение
никаких кнопок ты больше нажать не можешь, как получается АААББББББББААА?
могу, для этого после каждого Sleep выполняется Application->ProcessMessages();
+ это устраняет блики Image при смене картинки
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.08.2012, 18:55
Привет! Вот еще темы с ответами:

Как снять или удалить пароль - Mac OS
купил мак бук бу хотел переустановить систему но не смог этого сделать так как стоит пароль прошлого пользователя как его убрать?

Как снять или задать область печати - VBA
Как снять или задать область печати в заданном диапазоне средствами Vba, то есть в модуле. Заранее спасибо за ответ.

Поместить все компоненты приложения в один файл или скрыть во избежание модификации или замены - C#
Во время работы накопилось огромное количество jpg и dll файлов в папке debug. Как это всё запихать в один файл или скрыть, чтоб не было...

Как снять артрибут с файла text.txt или vaseapupkin.db ? - Windows 7
хочу снять с этих файлов артрибут файлы имеют разрешение один .тхт второй .датабасик, и мне нужно снять артрибут &quot;только чтение&quot; но на вин...


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

Или воспользуйтесь поиском по форуму:
9
Yandex
Объявления
22.08.2012, 18:55
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru