Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
swr-15
60 / 60 / 5
Регистрация: 12.04.2013
Сообщений: 415
Завершенные тесты: 1
1

Как организовать задержку между созданием динамических кнопок?

06.02.2015, 22:35. Просмотров 981. Ответов 3
Метки нет (Все метки)

Здравствуйте!
Я новичок в C++
Прошу подсказать как можно организовать задержку 1 сек между появлением на форме динамических кнопок с 1 по 5?
Вот так я делаю 5 динамических кнопок при запуске программы, но они появляются сразу.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void __fastcall TForm1::FormCreate(TObject *Sender) //при запуске
{
   for(int i = 0; i < 5; i++)
    {
        btn[i] = new TButton (Form1);
        btn[i]->Parent = Panel1;
        btn[i]->Left = 10 + (26*i);   //Задаем отступ сверху.
        btn[i]->Top = 10;            // Задаем отступ слева.
        btn[i]->Height = 33;
        btn[i]->Width = 33;
        btn[i]->Caption = кнопка+i; //Текст на кнопе.
    }
}
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.02.2015, 22:35
Ответы с готовыми решениями:

Как сделать задержку в C++ Builder 6?
Sleep и SleepEx не работают,они делают задержку не там где я пишу

Рисование графика. Как задать задержку?
вот мой код h=StrToFloat(Edit1-&gt;Text); t=(-4.9+sqrt(24.01+(19.6*h)))/(9.8);...

Как можно сделать задержку в микросекундах?
Компонент TTimer имеет минимальную задержку в 1 мс. Как можно сделать...

Как установить задержку перед загрузкой картинки?
Здравствуйте, срочно нужна ваша помощь))) Код, который открывает программу и...

Как сделать задержку окна при запуске программы ?
//---------------------------------------------------------------------------...

3
demmax2004
117 / 139 / 46
Регистрация: 31.10.2014
Сообщений: 721
Записей в блоге: 1
06.02.2015, 23:07 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void __fastcall TForm1::FormCreate(TObject *Sender) //при запуске
{
   for(int i = 0; i < 5; i++)
    {
        btn[i] = new TButton (Form1);
        btn[i]->Parent = Panel1;
        btn[i]->Left = 10 + (26*i);   //Задаем отступ сверху.
        btn[i]->Top = 10;            // Задаем отступ слева.
        btn[i]->Height = 33;
        btn[i]->Width = 33;
        btn[i]->Caption = кнопка+i; //Текст на кнопе.
Sleep(1000);
    }
}
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
26477 / 17781 / 7034
Регистрация: 22.10.2011
Сообщений: 31,295
Записей в блоге: 6
06.02.2015, 23:12 3
Лучший ответ Сообщение было отмечено swr-15 как решение

Решение

Это ничего не даст. Просто форма будет создаваться на 5 секунд дольше. А вот если сделать это в таймере с интервалом в одну секунду, и после того, как пройдет 5 тиков - отключить таймер - тогда сработает...
C++
1
2
3
4
5
6
7
8
9
10
11
12
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
    static int i = 0;
    btn[i] = new TButton(Form1);
    btn[i]->Parent = Panel1;
    btn[i]->Left = 10 + (26 * i); // Задаем отступ сверху.
    btn[i]->Top = 10; // Задаем отступ слева.
    btn[i]->Height = 33;
    btn[i]->Width = 33;
    btn[i]->Caption = L"кнопка" + IntToStr(i); // Текст на кнопе.
    Timer1->Enabled = ++i < 5;
}
1
swr-15
60 / 60 / 5
Регистрация: 12.04.2013
Сообщений: 415
Завершенные тесты: 1
06.02.2015, 23:34  [ТС] 4
Sleep(1000);
Ага, первым делом я это и пробовал, НЕ РАБОТАЕТ.
Есть еще варианты???

Добавлено через 1 минуту
Цитата Сообщение от volvo Посмотреть сообщение
Это ничего не даст. Просто форма будет создаваться на 5 секунд дольше. А вот если сделать это в таймере с интервалом в одну секунду, и после того, как пройдет 5 тиков - отключить таймер - тогда сработает...
__________________
На всякий случай. Skype: vlad_aka_ui, ICQ: 283647811
Пробовал с таймером, но у меня не получилось.Можете привести пример?

Добавлено через 9 минут
Цитата Сообщение от volvo Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
     static int i = 0;
     btn[i] = new TButton(Form1);
     btn[i]->Parent = Panel1;
     btn[i]->Left = 10 + (26 * i); // Задаем отступ сверху.
     btn[i]->Top = 10; // Задаем отступ слева.
     btn[i]->Height = 33;
     btn[i]->Width = 33;
     btn[i]->Caption = L"кнопка" + IntToStr(i); // Текст на кнопе.
     Timer1->Enabled = ++i < 5;
}
Появляется только первая кнопка и все. Может добавить что то в.
C++
1
void __fastcall TForm1::Timer1Timer(TObject *Sender)
Добавлено через 9 минут
Цитата Сообщение от swr-15 Посмотреть сообщение
Появляется только первая кнопка и все. Может добавить что то в.
Код C++
1
void __fastcall TForm1::Timer1Timer(TObject *Sender)
Нашел свою ошибку, все работает.Спасибо
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.02.2015, 23:34

Как правильно сделать задержку, ожидать событие в программе?
Вот, к примеру, алгоритм: Запуск программы Подготовка данных Запуск...

Как организовать задержку в UserControl
Добрый день! Я новичок в C# помогите решить проблемку. Я создаю собственный...

Как организовать задержку в приведенном коде
Подскажите пожалуйста как организовать задержку в таком коде: CSEG segment...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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