Поиск:

Ответ в темуСоздание новой темы Создание опроса
> контроль ввода данных, контороль ввода данных в Edit 
:(
    Опции темы
Solomon
Дата 20.9.2006, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 471
Регистрация: 23.1.2006
Где: Украина Киев

Репутация: нет
Всего: 2



с помощью каких функций можно определить введено в текстовое поле чилсо и нечисло а просто текст... Насколько я знаю в кампиляторах Boland есть такие функции...

p.s. Поиском пытался найти так ничего и не нашол

Добавлено @ 15:30 
Все нашол... извеняюсь за флуд smile . Тема закрыта )


--------------------
Если не идти до конца к поставленным целям и не пытатся их достигнуть, каким бы тяжелым не казался путь, то лучше и не ставь их перед собой, но тот кто не ставит перед собой труднодоступные цели, никогда не ощутит эйфорию настоящей победы... победы над миром...
Соломон 2008
PM MAIL ICQ GTalk YIM   Вверх
Solomon
Дата 20.9.2006, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 471
Регистрация: 23.1.2006
Где: Украина Киев

Репутация: нет
Всего: 2



мдяя.. найти нашол, но чет оно не пашит smile
Так что вопрос еще открыт smile



--------------------
Если не идти до конца к поставленным целям и не пытатся их достигнуть, каким бы тяжелым не казался путь, то лучше и не ставь их перед собой, но тот кто не ставит перед собой труднодоступные цели, никогда не ощутит эйфорию настоящей победы... победы над миром...
Соломон 2008
PM MAIL ICQ GTalk YIM   Вверх
Yra
Дата 20.9.2006, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 12.9.2006
Где: Украина, Киев

Репутация: нет
Всего: нет



isalpha(char) - true, если аргумент - символ алфавита
isdigit(char) - true, если арг. - (0...9) 

PM MAIL   Вверх
Solomon
Дата 20.9.2006, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 471
Регистрация: 23.1.2006
Где: Украина Киев

Репутация: нет
Всего: 2



Это когда у нас один символ... и эту проверку надо делать непосредственно при вводе каждого символа, можно конечно, но для начала бы хотелось мне узнать куда эту проверку именно вставить...
Я вообщето себе это представлял немного по другому... Вводиш в поле текст и нажимаеш кнопку "Далее", если введено число то производились бы расчеты и выводился бы результат. А если введен просто текст... то при нажатии "Далее" ничего бы не происходило до тех пор пока небудет введено число или выкидывался соответствующий месседж бокс...


--------------------
Если не идти до конца к поставленным целям и не пытатся их достигнуть, каким бы тяжелым не казался путь, то лучше и не ставь их перед собой, но тот кто не ставит перед собой труднодоступные цели, никогда не ощутит эйфорию настоящей победы... победы над миром...
Соломон 2008
PM MAIL ICQ GTalk YIM   Вверх
Yra
Дата 20.9.2006, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 12.9.2006
Где: Украина, Киев

Репутация: нет
Всего: нет



В обработчике нажатия кнопки:

len - длинна введёной строки;
name - масив char;

 for (int i = 0; i < len; i++)
  if (isdigit(name[i]))
   ......
  else
   ......

и все... никакой светлой мысли. smile 
PM MAIL   Вверх
Bunny
Дата 20.9.2006, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 22.3.2006

Репутация: 1
Всего: 1



Solomon 
а не лучше в обработчике OnKeyPress Edita проверять какая клавиша была нажата?!
Код

void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
    if (isdigit(Key) || Key == 8); //нажата цифра или backspace
    else Key = 0; 
}

PM MAIL ICQ   Вверх
Solomon
Дата 20.9.2006, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 471
Регистрация: 23.1.2006
Где: Украина Киев

Репутация: нет
Всего: 2



кстати как определить длинну текста введенного в Edit?


--------------------
Если не идти до конца к поставленным целям и не пытатся их достигнуть, каким бы тяжелым не казался путь, то лучше и не ставь их перед собой, но тот кто не ставит перед собой труднодоступные цели, никогда не ощутит эйфорию настоящей победы... победы над миром...
Соломон 2008
PM MAIL ICQ GTalk YIM   Вверх
Yra
Дата 20.9.2006, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 12.9.2006
Где: Украина, Киев

Репутация: нет
Всего: нет



Цитата(Solomon @ 20.9.2006,  16:26)
кстати как определить длинну текста введенного в Edit?

Цитата

кстати как определить длинну текста введенного в Edit?


Edit1->Text.Lenght();
PM MAIL   Вверх
Solomon
Дата 20.9.2006, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 471
Регистрация: 23.1.2006
Где: Украина Киев

Репутация: нет
Всего: 2



Bunny,  дякую )) все нормально работает )




--------------------
Если не идти до конца к поставленным целям и не пытатся их достигнуть, каким бы тяжелым не казался путь, то лучше и не ставь их перед собой, но тот кто не ставит перед собой труднодоступные цели, никогда не ощутит эйфорию настоящей победы... победы над миром...
Соломон 2008
PM MAIL ICQ GTalk YIM   Вверх
Akeem
Дата 20.9.2006, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 14.7.2006
Где: Киев/Украина

Репутация: 1
Всего: 3



Также можно было бы заделать фичу с регулярными выражениями.



--------------------
Мир огромен и мы только муравьи в нём! (С) formicha

PM MAIL WWW ICQ   Вверх
Alexeis
Дата 20.9.2006, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 26
Всего: 459



Код

 bool __fastcall TryStrToInt(const AnsiString S, int &Value);

if (TryStrToInt(Edit1->text, n))
ShowMessage("число");


Это сообщение отредактировал(а) alexeis1 - 20.9.2006, 17:39


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Bima
Дата 21.9.2006, 07:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 15.8.2006

Репутация: 2
Всего: 2



вот код простого примера. На форме лежит Edit1 и Label1.
Код

//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Kod.h"
//---------------------------------------------------------------------------
#pragma resource "*.dfm"
TForm1 *Form1;
bool Digit (AnsiString Cifra);//Подпрограмма проверки строки на цифру
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner):TForm(Owner){}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit1Change(TObject *Sender)
{
if (Digit(Edit1->Text))Label1->Caption="Цифра";
else Label1->Caption="Не цифра";
}
//---------------------------------------------------------------------------
bool Digit (AnsiString Cifra)
{
try
    {
    StrToFloat(Cifra);
    return true;
    }
catch(...)//Выполняется в случае ошибки
    {
    return false;
    }
}
//---------------------------------------------------------------------------

сама подпрограмма Digit делает преобразование. Если преобразование получилось, то возвращает true, если не получилось, значит возвращает false (это была не цифра).
Сам код проверки на цифру можно вставлять в любой момент, а не только на обработчик ввода текста.

Хочу обратить внимание!!! при отладкт программы если будет возникать ошибка, компилятор будет ругаться, но с компилированной программой все будет нормально!


--------------------
Чтобы дойти до цели, надо идти.

Клавиатура и мышь - это главные инструменты прогресса.
PM MAIL WWW   Вверх
aleks88
Дата 23.1.2012, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 31.8.2011

Репутация: нет
Всего: нет



В Edit нужно вводить числа, буквы и некоторые символы. Как сделать, чтобы невозможно было ввести первым знаком "пробел" ?
PM   Вверх
Данкинг
Дата 23.1.2012, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Проверять: если длина текста в Edit = 0 и символ нажатой клавиши = 32.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
aleks88
Дата 23.1.2012, 19:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 31.8.2011

Репутация: нет
Всего: нет



Можно более подробно :(
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.3950 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.