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

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

20.04.2013, 16:22. Показов 10640. Ответов 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,858
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,858
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,858
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,858
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,858
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,858
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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru