0 / 0 / 1
Регистрация: 05.04.2011
Сообщений: 25

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

27.05.2011, 17:57. Показов 2504. Ответов 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 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru