5 / 4 / 0
Регистрация: 18.10.2009
Сообщений: 69
1

Ожидание нажатия кнопки

11.05.2011, 19:36. Показов 2593. Ответов 4
Метки нет (Все метки)

Доброго времени суток. Пробежался поиском по форуму, точного ответа не нашел.

Представлю такое описание:

create(...) //в главной форме
{
...
вывод на экран текста
ввод текста в TEdit
считывание из TEdit в переменную, только после того, как нажата соотв-я кнопка, пока событие не произошло, ничего не делать.
if(some condition) create(...);
...
}

Можно сделать это в обработчике кнопки, но не понимаю как из обработчика попасть обратно в эту функцию.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.05.2011, 19:36
Ответы с готовыми решениями:

Ожидание нажатия кнопки!
Здравствуйте. Нужно сделать так, чтобы в коде ... F(...) // функция которая открывает 2 форму. На...

Ожидание нажатия кнопки на форме с использованием цикла while
Добрый день. На форме расположена кнопка Button1 и три Edit. По нажатию Button1 в Edit'ы...

Ожидание нажатия пользователем по форме
Как сделать так чтобы ожидалось нажатие пользователем мышкой по форме два раза...

Ожидание нажатие кнопки
Здравствуйте, помогите решить такую задачу. Есть кнопка один, в ней есть нужное мне действие,...

4
return (true);
1976 / 1111 / 221
Регистрация: 19.04.2011
Сообщений: 2,345
11.05.2011, 19:52 2
Вызвать эту функцию в обработчике
1
5 / 4 / 0
Регистрация: 18.10.2009
Сообщений: 69
11.05.2011, 20:20  [ТС] 3
mimicria, да, но я немного не уточнил, извиняюсь, считывание происходит не однократно, т.е. так:

create(...) //в главной форме
{
...
вывод на экран текста
ввод текста в TEdit
считывание из TEdit в переменную, только после того, как нажата соотв-я кнопка, пока событие не произошло, ничего не делать.
вывод на экран текста
ввод текста в TEdit
считывание из TEdit в переменную, только после того, как нажата соотв-я кнопка, пока событие не произошло, ничего не делать.
if(some condition) create(...);
...
}

т.е. во время работы функции надо несколько раз останавливаться и ожидать подтверждения ввода...
Компонент TEdit всего 1 и нужно вводить по ходу прохождения всех операторов ф-ии разные значения, подтверждения ввода нужно для того, чтобы пользователь успел введи данные. Конечно если мы сделаем 2 компонента TEdit ваш вариант подойдет.
0
return (true);
1976 / 1111 / 221
Регистрация: 19.04.2011
Сообщений: 2,345
11.05.2011, 20:22 4
А почему не сделать так:
- В главной форме сделали подготовительные действия
- В обработчике нажатия на кнопку сделали следующие действия
- В обработчике нажатия следующей кнопки еще действия
и т.д...
1
5 / 4 / 0
Регистрация: 18.10.2009
Сообщений: 69
11.05.2011, 21:42  [ТС] 5
При такой постройке программы, происходит постоянное зацикливание, как этого избежать?
+ посмотрите на ф-ю creating, в ней я поставил условие if в комментарий, как сделать так, чтобы при выполнении программы по ошибке не случилось аварийной ситуации? Т.е. нужно обработать это исключение...
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
Tree *creating(int level) //рекурсивное создание дерева
{
    Tree *pointer = new Tree;
    Main_form->StaticText_output->Caption = "Current level: " + IntToStr(level) + "; enter number for cell filling and the quantity of sons of this element";
    //заполнение ячеек элемента дерева
    pointer->cell = StrToInt(Main_form->Edit_cell->Text);
    pointer->quan_of_sons = StrToInt(Main_form->Edit_quan_of_sons->Text);
    //if(pointer->quan_of_sons < 0)
    //  Main_form->StaticText_output->Caption = "Number of sons of the element can not be less than 0!, repeat: ";
    pointer->arrp_sons = new Tree *[pointer->quan_of_sons];
    level++;
    //recursive creation of sons
    for(unsigned int i(0); i < pointer->quan_of_sons; i++)
        pointer->arrp_sons[i] = creating(level);
    pointer->level = level;
    level--;
    return pointer;
}
//---------------------------------------------------------------------------
void __fastcall TMain_form::Button_readClick(TObject *Sender)
{
    root = *creating(0);
}
//---------------------------------------------------------------------------
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.05.2011, 21:42
Помогаю со студенческими работами здесь

Проверка нажатия кнопки
на форме есть 2 кнопки Button и Edit Если нажата кнопка 1, надо написать в эдит: нажата кнопка1,...

Имитация нажатия кнопки
Подскажите пожалуйста как можно программно нажать кнопку. То есть например при открытии удаленного...

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

Прехват нажатия кнопки Tab
Пытаюсь перевести фокус с Комбобокс1 на Эдит1 при нажатии на кнопку Tab. Делаю так: void...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru