2 / 2 / 1
Регистрация: 29.11.2012
Сообщений: 143

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

20.04.2013, 16:22. Показов 10449. Ответов 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
1709 / 905 / 207
Регистрация: 25.11.2009
Сообщений: 1,850
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
1709 / 905 / 207
Регистрация: 25.11.2009
Сообщений: 1,850
21.04.2013, 00:03
Vashtanerada, завтра на свежую голову ещё раз посмотрю проект
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
21.04.2013, 00:05
Да тут не смотреть надо, а заново переписывать...

Только вот понять бы чего хотели добиться.
0
 Аватар для Lelik-pahan
1709 / 905 / 207
Регистрация: 25.11.2009
Сообщений: 1,850
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
1709 / 905 / 207
Регистрация: 25.11.2009
Сообщений: 1,850
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
8489 / 6156 / 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
1709 / 905 / 207
Регистрация: 25.11.2009
Сообщений: 1,850
21.04.2013, 00:35
то, что я тут расписал, это пофигу?
Программная пауза


вот подправил. Правда правил в 6-м билдере, но надеюсь заработает
New2.rar
2
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 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
1709 / 905 / 207
Регистрация: 25.11.2009
Сообщений: 1,850
21.04.2013, 00:57
Vashtanerada, вы исправили обработчик FormKeyPress ?
у вас есть эта функция, но она никогда не вызывается, т. к. у формы на обработку этого события ничего не назначено.

И вы удалили локальные объявления переменной pause?
0
2 / 2 / 1
Регистрация: 29.11.2012
Сообщений: 143
21.04.2013, 00:58  [ТС]
Да сделал и исправила обработчик FormKeyPress, и у брала локальное объявление переменной.
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html и его же старой инструкции по установке Lazarus с gtk2. . .
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер. Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром. возможно получится прикрутить интерпретатор питон для кастомизации игровой логики. что есть на текущий момент:. . .
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2. Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru