Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.67/48: Рейтинг темы: голосов - 48, средняя оценка - 4.67
2 / 2 / 1
Регистрация: 29.11.2012
Сообщений: 143

Программная пауза

20.04.2013, 16:22. Показов 10153. Ответов 57
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Будьте добры, подскажите. Мне необходимо поставить паузу, так, чтобы для продолжения работы программы нужно было нажать какую-либо клавишу.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.04.2013, 16:22
Ответы с готовыми решениями:

Неправильно работает пауза в while
Задача стоит в том, чтобы показать пошаговое выполнение одного алгоритма. Реализацию самого алгоритма я сделал успешно. Вкратце смысл в...

Пауза на исполнение команды
Добрый день всем! Кто поможет решить такую задачу с 3 секундной паузой меж строк кода: допустим: 1.ButtonCancel->Enabled =...

Пауза в инструкции - ожидание события
Коллеги, будьте добры, подскажите как организовать следующий момент. Есть 2 цикла в одной функции, которые идут подряд. Нужно чтобы...

57
 Аватар для Lelik-pahan
1703 / 899 / 207
Регистрация: 25.11.2009
Сообщений: 1,848
20.04.2013, 23:42
Студворк — интернет-сервис помощи студентам
а у вас сначала прогоняются все форы, и только потом стоит пауза

Добавлено через 2 минуты
т. е. вот эту вот скобку
Canvas->Rectangle(300,25,325,50);}
надо поставить после паузы
1
2 / 2 / 1
Регистрация: 29.11.2012
Сообщений: 143
20.04.2013, 23:52  [ТС]
Цитата Сообщение от Lelik-pahan Посмотреть сообщение
паузу надо вставить внутрь цикла for, до закрывающей фргурной скобки
В таком случае он совсем ни чего не выводит
0
 Аватар для Lelik-pahan
1703 / 899 / 207
Регистрация: 25.11.2009
Сообщений: 1,848
21.04.2013, 00:03
Vashtanerada, завтра на свежую голову ещё раз посмотрю проект
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
21.04.2013, 00:05
Да тут не смотреть надо, а заново переписывать...

Только вот понять бы чего хотели добиться.
0
 Аватар для Lelik-pahan
1703 / 899 / 207
Регистрация: 25.11.2009
Сообщений: 1,848
21.04.2013, 00:06
всё, разобрался ) сейчас напишу
0
2 / 2 / 1
Регистрация: 29.11.2012
Сообщений: 143
21.04.2013, 00:06  [ТС]
Цитата Сообщение от Avazart Посмотреть сообщение
Да не, не стоит лучше скажи что он в общем делает и с изображением.
Берется цвет (RGB) И разбивается на составляющие. Для каждого цвета
C++
1
2
3
for (r=0; r<=255; r=r+c)
 for (g=0; g<=255; g=g+c)
  for (b=0; b<=255; b=b+c)
(что можно видеть в первых 3х for-ах. Затем каждый разбиваем на отрезки
C++
1
2
3
4
k=Edit1->Text.ToInt(); //количество цветов
t=1.0/3.0;
q=pow(k,t);          //количество отрезков
a=255/q;               //размер одного отрезка
Затем каждый "отрезка" берем его среднее значение и "собираем" в единый цвет - это будет цвет который мы будем сравнивать с первоначальным. Цвета показываем цветными квадратами.
C++
1
2
3
4
5
6
    n=r+g*256+b*65536;
    n1=r1+g1*256+b1*65536;
    Canvas->Brush->Color=n;
    Canvas->Rectangle(225,25,250,50);
    Canvas->Brush->Color=n1;
    Canvas->Rectangle(300,25,325,50);
0
 Аватар для Lelik-pahan
1703 / 899 / 207
Регистрация: 25.11.2009
Сообщений: 1,848
21.04.2013, 00:18
Vashtanerada,
1) у вас неправильно собственноручно добавлен обработчик
void __fastcall TForm1::FormKeyPress(TObject *Sender, char &Key)

в Unit1.h перенесите строку
C++
1
void __fastcall FormKeyPress(TObject *Sender, char &Key);
из секции
C++
1
private:    // User declarations
чуть выше, в секцию
C++
1
__published:    // IDE-managed Components
затем выберите форму, в окне инспектора объектов перейдите на вкладку events, там найдите событие OnKeyPress и дважды кликните на нём (сейчас оно не назначено)

2)вы объявили переменную bool pause; отдельно в Button1Click и в FormKeyPress.
я писал совсем другое )
напишите bool pause; опять таки в Unit1.h, в секции
C++
1
public:     // User declarations
в конструкторе формы (первая функция вверху CPP файла) __fastcall TForm1::TForm1(TComponent* Owner) напишите
C++
1
 pause = false;
и удалите это объявление bool pause; из Button1Click и из FormKeyPress
1
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
21.04.2013, 00:26
Vashtanerada,
C++
1
2
3
for (r=0; r<=255; r=r+c)
 for (g=0; g<=255; g=g+c)
  for (b=0; b<=255; b=b+c)
Ну это перебор каждого цвета ...

А тебе что нужно что бы при каждом нажатии кнопки выводились следующий цвет n и n1 ?

Добавлено через 6 минут
Правильно ли я понял задача в том что бы перебрать всевозможные цвета один за одним ( по очереди ) и вычислить для него цвет n1 ?
0
2 / 2 / 1
Регистрация: 29.11.2012
Сообщений: 143
21.04.2013, 00:33  [ТС]
Цитата Сообщение от Avazart Посмотреть сообщение
Правильно ли я понял задача в том что бы перебрать всевозможные цвета один за одним ( по очереди ) и вычислить для него цвет n1 ?
Да, вы поняли абсолютно правильно. И выводить нужно оба цвета - для сравнения. И программа это делает, но уловить как отличаются цвета невозможно, поскольку все цвета просто меняются один за другим и не понятно есть ли разница.
0
 Аватар для Lelik-pahan
1703 / 899 / 207
Регистрация: 25.11.2009
Сообщений: 1,848
21.04.2013, 00:35
то, что я тут расписал, это пофигу?
Программная пауза


вот подправил. Правда правил в 6-м билдере, но надеюсь заработает
New2.rar
2
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
21.04.2013, 00:35
Цитата Сообщение от Vashtanerada Посмотреть сообщение
Да, вы поняли абсолютно правильно. И выводить нужно оба цвета - для сравнения. И программа это делает, но уловить как отличаются цвета невозможно, поскольку все цвета просто меняются один за другим и не понятно есть ли разница.
Т.е если сделать так что бы при каждом нажатии на кнопку выводился новый цвет будет нормально ?
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
21.04.2013, 00:36
я не зря говорил о выводе сообщений - с учетом задачи, не устроит ли вывод промежуточных цветов ?
0
2 / 2 / 1
Регистрация: 29.11.2012
Сообщений: 143
21.04.2013, 00:52  [ТС]
Цитата Сообщение от Lelik-pahan Посмотреть сообщение
но надеюсь заработает
К сожалению не заработала, но код я проверила, вроде все так же, но все равно не могу посмотреть каждый цвет отдельно.
C++
1
pause = true;
И именно из-за этой паузы программа корректно не закрывается
0
 Аватар для Lelik-pahan
1703 / 899 / 207
Регистрация: 25.11.2009
Сообщений: 1,848
21.04.2013, 00:57
Vashtanerada, вы исправили обработчик FormKeyPress ?
у вас есть эта функция, но она никогда не вызывается, т. к. у формы на обработку этого события ничего не назначено.

И вы удалили локальные объявления переменной pause?
0
2 / 2 / 1
Регистрация: 29.11.2012
Сообщений: 143
21.04.2013, 00:58  [ТС]
Да сделал и исправила обработчик FormKeyPress, и у брала локальное объявление переменной.
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
21.04.2013, 02:15
Лучший ответ Сообщение было отмечено как решение

Решение

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
59
60
61
62
63
64
65
66
67
68
69
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
   Timer1->Enabled= false;
   Timer1->Interval= 10;
}
//---------------------------------------------------------------------------
const int max_value= 255;
const int c = 25;
int r= 0, g= 0, b= 0;
//---------------------------------------------------------------------------
int gen_value(int f,int q,int a,int value)
 {
   for (int s=0; f <= q; f++)
     {
       s += a;
       if (value < s) return  s-a/2;
     }
 }
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
  int k = Edit1->Text.ToIntDef(10); //кол-во цветов
  double t = 1.0 / 3.0;
  double q = pow(k, t);          //кол-во отрезков
  double a = 255 / q;               //размер отрезка
  int f=1;
 
  Label2->Caption = q;
  Label4->Caption = a;
 
  int r1= gen_value(f,q,a,r);
  int g1= gen_value(f,q,a,g);
  int b1= gen_value(f,q,a,b);
 
  TColor color= RGB(r,g,b);
  TColor newcolor= RGB(r1,g1,b1);
 
  Canvas->Brush->Color = color;
  Canvas->Rectangle(225, 25, 250, 50);
  Canvas->Brush->Color = newcolor;
  Canvas->Rectangle(300, 25, 325, 50);
 
  Memo1->Lines->Add(String(r)+"\t"+String(g)+"\t"+String(b)+"\t->\t"+
                    String(r1)+"\t"+String(g1)+"\t"+String(b1));
 
  b+=c;
  if( b> max_value)
   {
     b= 0;
     g+= c;
 
     if(g> max_value)
       {
        b= g= 0;
        r+= c;
 
        if( r> max_value)
          { g= b= r= 0; Timer1->Enabled= false; }
       }
   }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  Timer1->Enabled= !Timer1->Enabled;
}
//---------------------------------------------------------------------------
Добавлено через 5 минут
Расчеты перепроверьте мог ошибиться, но смысл думаю понятен.
3
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
21.04.2013, 09:55
Ну, наконец-то в теме обозначился таймер! Я уж думал и еще 50 постов будут с ProcessMessages() извращаться...
0
21.04.2013, 14:49

Не по теме:


Цитата Сообщение от BRcr Посмотреть сообщение
Ну, наконец-то в теме обозначился таймер! Я уж думал и еще 50 постов будут с ProcessMessages() извращаться...
всё начиналось совсем безобидно :)

1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.04.2013, 14:49
Помогаю со студенческими работами здесь

В билдеровском MediaPlayer-е кнопка стоп работает как пауза?
Ребята, кто-нибудь сталкивался с такой проблемой, в билдеровском медиаплеере кнопка стоп, работает как пауза или это только у меня такие...

нужно сделать кнопки старт и пауза для движущихся фигур
пауза нормально работает. но после паузы нажимаешь на старт фигуры не продолжают движение по траектории, а движется хаотично. помогите...

Программная эмуляция джойстика
Здравствуйте! Делаю одну ЮСБ-примочку для ПК, одна с функций которого - прием сигналов с ПДУ и передача их на ПК как игровое устройство...

Программная реализация номограммы
Сейчас пишу одну модель программно, в нее входят разные формулы для ее расчета, вбивать их конечно на С, не составляет никакого труда, но...

Программная очистка Edit
Нужно это добавить как то в настройки Edit1-&gt;Clear(); Но чтобы Edit1 чистился не на событие OnClick а чтобы это в настройки вывести и...


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

Или воспользуйтесь поиском по форуму:
58
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru