Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 1
Регистрация: 05.04.2011
Сообщений: 25

Контроль типа данных в Edit

27.05.2011, 17:57. Показов 2502. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, делаю базу данных,по данной теме задавалось много вопросов, но чёткого ответа я не нашёл, мне нужно поставить контроль на ввод данных, допустим если в текстовое поле вводятся цифры,то после нажатия кнопки добавить(для добавления использую форму с 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
int a,b;
         bool RIGHT=false;
a=StrToInt(Edit3->Text);
         b=StrToInt(Edit4->Text);
            if(Edit1->Text==" ")
                {
                      ShowMessage ("Укажите название продукта");
                                Edit1->SetFocus();
                }
                       else
            if(Edit2->Text=="")
                {
                       ShowMessage ("Укажите вид продукта");
                                Edit2->SetFocus();
                }
                        else
            if(Edit3->Text=="")
                {
                       ShowMessage ("Укажите вес продукта");
                                Edit3->SetFocus();
                }
                        else
            if(Edit4->Text=="")
        {
                       ShowMessage ("Укажите калорийность");
                                Edit4->SetFocus();
                }
                        else
 
 
     RIGHT=true;
 
     if (RIGHT)
 
     {
        DataModule3->tblKalkul_karta->Insert();
 
          DataModule3->insKalk->SQL->Clear();
 
              DataModule3->insKalk->SQL->Add("INSERT INTO Kalkul_karta (Produkt,Vid_produkta,Ves_gr,Kaloriynost)VALUES ('"+Edit1->Text+"','"+Edit2->Text+"','"+a+"','"+b+"')" ) ;
 
         DataModule3->tblKalkul_karta->Last();
 
             DataModule3->tblKalkul_karta->Close();
 
                 DataModule3->insKalk->ExecSQL();
 
                       DataModule3->tblKalkul_karta->Open();
 
 
         }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.05.2011, 17:57
Ответы с готовыми решениями:

Контроль ввода в Edit
В edit1 нужно вводить только числа либо русские буквы. Как это проконтролировать? в событие KeyPress или KeyDown? Задача в том, что: ...

Контроль ввода в Edit
всем привет. как организовать контроль ввода данных в edit - необходимо вводить HEX число я делаю в procedure...

Контроль типа страницы
День добрый! Есть база. Делаю backup - возникает ошибка: http://i046.***********/0912/9e/55edbc41b0f4.jpg Собсно вопрос - как...

11
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
27.05.2011, 18:29
https://www.cyberforum.ru/cpp-... 15025.html
1
0 / 0 / 1
Регистрация: 05.04.2011
Сообщений: 25
27.05.2011, 19:49  [ТС]
Цитата Сообщение от Sasha Посмотреть сообщение
пробовал- не работает(((
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
27.05.2011, 23:59
Надо проверять содержимое эдитов на число
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
28.05.2011, 00:02
Цитата Сообщение от gs.Soroka Посмотреть сообщение
пробовал- не работает(((
Выложи код как пробывал?
1
0 / 0 / 1
Регистрация: 05.04.2011
Сообщений: 25
28.05.2011, 12:45  [ТС]
Цитата Сообщение от Sasha Посмотреть сообщение
Выложи код как пробывал?
C++
1
2
3
4
5
6
void __fastcall TForm7::Edit2KeyPress(TObject *Sender, char &Key)
{
char v=Key;
 if !((int(v)<48)||(int(v)>57))
  Edit2->Text += v;
}

та не выходит,по всякому,кореш знает,но не говорит((,через Аски код
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
28.05.2011, 13:35
А так?
C++
1
2
3
4
5
6
7
8
9
Form1->KeyPreview = true;
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
 if ((Key >= '0' && Key <= '9'))
 {
  Key = 0;
  ShowMessage("Â ýòî ïîëå, íåîáõîäèìî ââîäèòü òîëüêî áóêâû");
 }
}
1
0 / 0 / 1
Регистрация: 05.04.2011
Сообщений: 25
28.05.2011, 16:12  [ТС]
Цитата Сообщение от Sasha Посмотреть сообщение
А так?
C++
1
2
3
4
5
6
7
8
9
Form1->KeyPreview = true;
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
 if ((Key >= '0' && Key <= '9'))
 {
  Key = 0;
  ShowMessage("Â ýòî ïîëå, íåîáõîäèìî ââîäèòü òîëüêî áóêâû");
 }
}
а вот это в каком месте надо? Form1->KeyPreview = true;

Добавлено через 2 часа 20 минут
Это работает, теперь только осталось, разобраться с типом Date!
C++
1
2
3
4
5
6
7
8
9
10
TEdit *edit = dynamic_cast<TEdit*>(Sender);
      edit->ReadOnly = false;
 
      Set<char,'0', '9'> nst;
      nst<<'0'<<'1'<<'2'<<'3'<<'4'<<'5'<<'6'<<'7'<<'8'<<'9'<<'.';
 
     if ( (nst.Contains(Key)) || (Key == VK_BACK) || ((Key == DecimalSeparator) && (edit->Text.Pos(DecimalSeparator) == 0) ) )
         edit->ReadOnly = false;
     else
         edit->ReadOnly = true;
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
28.05.2011, 18:24
Цитата Сообщение от gs.Soroka Посмотреть сообщение
а вот это в каком месте надо? Form1->KeyPreview = true;
В инспекторе объектов формы находишь свойство и ставишь ему значение true

Добавлено через 1 минуту
Цитата Сообщение от gs.Soroka Посмотреть сообщение
1
2
3
4
5
6
7
8
9
10 TEdit *edit = dynamic_cast<TEdit*>(Sender);
edit->ReadOnly = false;
Set<char,'0', '9'> nst;
nst<<'0'<<'1'<<'2'<<'3'<<'4'<<'5'<<'6'<< '7'<<'8'<<'9'<<'.';
if ( (nst.Contains(Key)) || (Key == VK_BACK) || ((Key == DecimalSeparator) && (edit->Text.Pos(DecimalSeparator) == 0) ) )
edit->ReadOnly = false;
else
edit->ReadOnly = true;
Что ты этим кодом хочешь сделать?
1
0 / 0 / 1
Регистрация: 05.04.2011
Сообщений: 25
28.05.2011, 19:25  [ТС]
Цитата Сообщение от Sasha Посмотреть сообщение
В инспекторе объектов формы находишь свойство и ставишь ему значение true
Спасибо, с этим разобрался. Теперь остался последний косяк:
В эдит пишу 33,4 а в дбгрид отображает 33 ,вот код
C++
1
c=StrToFloat(Edit4->Text);
кто знает?

Добавлено через 56 минут
Цитата Сообщение от Sasha Посмотреть сообщение
В инспекторе объектов формы находишь свойство и ставишь ему значение true

Добавлено через 1 минуту

Что ты этим кодом хочешь сделать?
Это почти тоже самое что и
C++
1
if((Key!=VK_BACK)&&(Key<'0'||Key>'9')&&(Key!=','))Key=0;
Добавлено через 2 минуты
всё разобрался со 2 вопросом, просто
double c;
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
28.05.2011, 19:25
Цитата Сообщение от gs.Soroka Посмотреть сообщение
В эдит пишу 33,4 а в дбгрид отображает 33 ,вот код
Код C++1 c=StrToFloat(Edit4->Text);
кто знает?
Тип поля базы какой?
1
0 / 0 / 1
Регистрация: 05.04.2011
Сообщений: 25
28.05.2011, 19:36  [ТС]
Цитата Сообщение от Sasha Посмотреть сообщение
Тип поля базы какой?
Тип поля был денежный,я уже написал что разобрался))
указал double c;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.05.2011, 19:36
Помогаю со студенческими работами здесь

Контроль корректности при приведении типа указателя
Требуется максимально корректно проверить, что переменная типа viod* содержит указатель на объект некоторого класса TDerived,...

Edit Memo Массив Добовление удаление с Memo исходя из введеных данных в Edit
Помогите реализовать такое вот задание: Есть форма на которой присутствуют Memo1 Edit1 Button1 В эдит1 заносим допустим A; и в мемо1...

Перенос введенных данных из Edit в другой Edit на другой форме (MFC)
Имеется: проект MFC в котором есть IDC_DIALOG1 и IDC_DIALOG2. Нужно: после нажатия кнопки на IDC_DIALOG1, открыть IDC_DIALOG2 и...

Delphi: Edit типа cbsEllipsis
У DBGrid-a есть возможность делать ячейку с кнопкой выбора (достигается путём изменения свойства ButtonStyle=cbsEllipsis). При нажатии этой...

Переменна типа float в Edit
Мне нужно в одно поле ввести какоето число, во второе число на которое нужно умножать первое, а еще одном окне вывести результат, но...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru