Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
 Аватар для Guilty
0 / 0 / 0
Регистрация: 19.05.2015
Сообщений: 37

Что нужно сделать, чтобы при вводе слов в Edit кнопка была активной

19.05.2015, 16:08. Показов 3653. Ответов 26
Метки нет (Все метки)

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

Как сделать чтобы при вводе данных в edit рисовался график
Ребята как сделать чтобы при вводе данных в edit рисовался график Можете код скинуть

Как сделать чтобы активной была та вкладка на которую нажал при обновлении страницы.
Все добрый. Решил использовать вкладки/ пример http://jsfiddle.net/gxy45/2/ $('#wrapper a').click(function() { if...

Нужно чтобы в фокусе была нужная кнопка
здравствуйте на форме есть 12 кнопок в некоторых случаях нужно, чтобы фокус стоял не на первой кнопке это как делается? строка...

26
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
19.05.2015, 16:10
В обработчике события Edit-a прописывайте нужный код.
Так же пропишите в обработчике кнопки, при нажатии - делайте неактивной.
Плюс глобальную переменную на количество "кликов" по кнопке.
0
 Аватар для Guilty
0 / 0 / 0
Регистрация: 19.05.2015
Сообщений: 37
19.05.2015, 16:22  [ТС]
В том то и дело, что я не имею понятия, какой код мне нужно прописывать в обработчик события Edit.
0
19.05.2015, 16:34

Не по теме:

Почтальен, не желаете поразмяться?

0
19.05.2015, 18:47

Не по теме:

Да как сказать, так-то не против, накатаю код :)

0
 Аватар для demon_7
260 / 192 / 60
Регистрация: 12.05.2013
Сообщений: 857
19.05.2015, 18:49
Guilty, для начала необходимо определиться с списком слов.
Вам необходимо завести глобальный список Ваших "секретных слов".
Далее, в Edit в событие Change (скорее всего) - пишите обычный код сравнения в цикле, символов в Edit с каждым словом из списка, при совпадении принимаете действия.
Короче вот -
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "sButton"
#pragma link "sEdit"
#pragma link "sLabel"
#pragma resource "*.dfm"
TForm1 *Form1;
TStringList *SL=new TStringList;     //Наш список секретных слов храним тут
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::FormCreate(TObject *Sender)
{
//Заполняем список
SL->Add("Яблоко");
SL->Add("Секрет");
SL->Add("Слово");
SL->Add("Медведь");
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::sEdit1Change(TObject *Sender)
{
//Сравниваем то что сейчас в Edit с каждым словом из списка
for (int i=0; i<SL->Count; i++)
        {
        if (sEdit1->Text==SL->Strings[i])
                {sButton1->Enabled=true;
                SL->Delete(i);}
        }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::sButton1Click(TObject *Sender)
{
//Приводим в начальное состояние
sButton1->Enabled=false;
sEdit1->Clear();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
delete SL;
}
//---------------------------------------------------------------------------
Добавлено через 24 секунды
Почтальен, извини, начал писать до твоего ответа =(
2
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
19.05.2015, 18:58
Ну вот, как-то так:
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
unsigned int count_click;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit1Change(TObject *Sender)
{
    BitBtn1->Enabled = True;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
    if (count_click != 5)
        {
            BitBtn1->Enabled = false;
                count_click += 1;
        }
        else
        {
            ShowMessage("Превышено количество допустимых нажатий");
        }
}
//---------------------------------------------------------------------------
на кнопке в диспетчере выставить Enabled = false
Максимум можно нажать 5 раз.
Добавлено через 57 секунд
Цитата Сообщение от demon_7 Посмотреть сообщение
Почтальен, извини, начал писать до твоего ответа =(
Да нее, нормуль все
2
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33378 / 21502 / 8236
Регистрация: 22.10.2011
Сообщений: 36,899
Записей в блоге: 11
19.05.2015, 19:01
Цитата Сообщение от demon_7 Посмотреть сообщение
C++
1
2
3
4
//Сравниваем то что сейчас в Edit с каждым словом из списка
for (int i=0; i<SL->Count; i++)
* * * * {
* * * * if (sEdit1->Text==SL->Strings[i])

C++
1
if(sL->IndexOf(sEdit1->Text) > -1) ...
2
19.05.2015, 19:04

Не по теме:

volvo, я специально так написал, чтобы Вы порадовали нас своим присутствием :jokingly:

0
19.05.2015, 19:06

Не по теме:

краткость-сестра таланта, что тут еще сказать:D

0
 Аватар для Guilty
0 / 0 / 0
Регистрация: 19.05.2015
Сообщений: 37
20.05.2015, 09:37  [ТС]
Спасибо за разъяснения

Добавлено через 9 часов 38 минут
Я не знаю почему, но у меня кнопка становится активной если я ввожу любое из заданных слов
0
 Аватар для demon_7
260 / 192 / 60
Регистрация: 12.05.2013
Сообщений: 857
20.05.2015, 09:41
Цитата Сообщение от Guilty Посмотреть сообщение
Нужно чтобы при вводе какого-либо определенного слова кнопка становилась активной. Далее когда я нажимаю на кнопку, она снова становится неактивной, и чтобы она снова стала активной, мне нужно ввести уже другое слово в Edit.
Цитата Сообщение от Guilty Посмотреть сообщение
Я не знаю почему, но у меня кнопка становится активной если я ввожу любое из заданных слов
Про порядок не было сказано ни слова. Вам нужно строго в определенном порядке?
0
 Аватар для Guilty
0 / 0 / 0
Регистрация: 19.05.2015
Сообщений: 37
20.05.2015, 09:44  [ТС]
Да. Т.е ввожу только 1 слово, далее по нажатию кнопки мне нужно ввести уже другое слово(тоже только одно). Прошу прощения за неуказание этого фактора, моя вина.
0
 Аватар для demon_7
260 / 192 / 60
Регистрация: 12.05.2013
Сообщений: 857
20.05.2015, 09:48
Код который есть у Вас на данный момент, легко адаптировать под новые условия, цикл уже не понадобиться.
Попытайтесь выполнить адаптацию сами, если будут вопросы, поможем.
Подсказка.
Вам надо сравнивать только 1 строку нашего массива секретных слов с символами введенными в Edit.
При совпадении, переходить к сравнению со второй строкой, и так до конца нашего массива секретных слов.
:3
0
 Аватар для Guilty
0 / 0 / 0
Регистрация: 19.05.2015
Сообщений: 37
20.05.2015, 10:01  [ТС]
Мне нужно изменить условие только в обработчике Edit? А со списком слов в SL оставить все как есть?
0
 Аватар для demon_7
260 / 192 / 60
Регистрация: 12.05.2013
Сообщений: 857
20.05.2015, 10:06
Цитата Сообщение от Guilty Посмотреть сообщение
Мне нужно изменить условие только в обработчике Edit? А со списком слов в SL оставить все как есть?
Не если в списке что то не устраивает, то тоже изменяйте.
Я не могу дать эталонное решение, я Вам предоставил лишь некий пример как это можно реализовать, каждый может данную задачу реализовать по своему. Поэтому делайте то что считаете нужным, экспериментируйте, это же программирование :3
0
 Аватар для Guilty
0 / 0 / 0
Регистрация: 19.05.2015
Сообщений: 37
20.05.2015, 10:55  [ТС]
Ладно, будем пробовать

Добавлено через 42 минуты
Я решил сделать немного по другому, я ввел глобальную переменную string s,присвоил ей значение первого слова, ввел условие, при котором Edit=s, значит кнопка активна, а с помощью оператора case по нажатию кнопки менял бы значение переменной s, однако почему то это не работает. Можете сказать в чем ошибка? Вот код:

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
70
71
72
73
#include <vcl.h>
#pragma hdrstop
#include <string.h>
#include "Unit3.h"
#include "Unit1.h"
#include "Unit4.h"
#include "Unit5.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm3 *Form3;
static int x=2;
String s;
static int k;
//---------------------------------------------------------------------------
__fastcall TForm3::TForm3(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
 
void __fastcall TForm3::Button1Click(TObject *Sender)
{
switch(k){
case 1:{s=("Äîæäü");
break;}
case 2:{s=("Ïëàñòèê");
break;}}
Button1->Enabled=false;
Edit1->Clear();
Image2->Picture->LoadFromFile("Picture/"+IntToStr(x)+".jpg");
x=x+1;
if (x>10)
{ Button1->Visible=false;}
}
 
//---------------------------------------------------------------------------
 
 
void __fastcall TForm3::N3Click(TObject *Sender)
{
Form1->Close();
}
//---------------------------------------------------------------------------
 
 
 
 
 
 
 
 
 
 
 
void __fastcall TForm3::Edit1Change(TObject *Sender)
{
 if (Edit1->Text==s)
{Button1->Enabled=true;}
else {Button1->Enabled=false;}
}
//---------------------------------------------------------------------------
 
 
 
 
 
void __fastcall TForm3::FormCreate(TObject *Sender)
{
s="Áåíçèí";
}
//---------------------------------------------------------------------------
0
 Аватар для demon_7
260 / 192 / 60
Регистрация: 12.05.2013
Сообщений: 857
20.05.2015, 11:03
Переменная k всегда равна 0.
0
 Аватар для Guilty
0 / 0 / 0
Регистрация: 19.05.2015
Сообщений: 37
20.05.2015, 11:07  [ТС]
Исправил, но по нажатию кнопки, кнопка не реагирует на 2-ое слово , и активна если вводить 1-ое.
0
 Аватар для demon_7
260 / 192 / 60
Регистрация: 12.05.2013
Сообщений: 857
20.05.2015, 11:08
Ну так Вы покажите как исправили)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.05.2015, 11:08
Помогаю со студенческими работами здесь

Нужно нарисовать флаг, и сделать проверку на то, чтобы при вводе числа 0 - программа закрывалась
Прошу помощи =) Нужно нарисовать флаг, и сделать проверку на то, чтобы при вводе числа 0 - программа закрывалась, ну или выводилось...

Нужно, чтобы при вводе правильного пароля выходило подтверждение, что введено правильно
&lt;html&gt; &lt;head&gt; &lt;title&gt; Пароль &lt;/title&gt; &lt;script&gt; x=0 y=0 function fn1() { if (p1.value==1234)

При выводе результатов мне нужно сделать так, чтобы каждая строка была пронумерована по порядку
Всем привет! У меня два вопроса: 1) При запросе в базу данных выводится огромное количество строк, а мне нужно только 10, не более....

Как сделать, чтобы кнопка на сайте была недоступна 60 секунд?
У меня на сайте на странице регистрации выведены правила, а в конце кнопки: &quot;Принимаю&quot; и &quot;Не принимаю&quot;. Как сделать, чтобы...

Нужно сделать так чтобы при неправильном вводе программа не прекращала работу, а предлагала заново ввести значение N
Вот собственно сам код #include&lt;ctime&gt; #include&lt;iostream&gt; using namespace std; int N, action; int main() { ...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru