Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
gs.Soroka
0 / 0 / 1
Регистрация: 05.04.2011
Сообщений: 25
1

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

27.05.2011, 17:57. Просмотров 1718. Ответов 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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2011, 17:57
Ответы с готовыми решениями:

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

Как вводить и выводить данные с Edit типа char?
Подскажите пожалуйста как вводить и выводить данные с Edit типа char. Например...

Сконвертировать текст с поля Edit в переменную типа Verylong
Здравствуйте. Подскажите начинающему, как из поля Edit число сделать...

Контроль введенных данных в TEdit
Здравствуйте. Делаю лабы по универу. Мне нужно проверить, чтобы данные, которые...

Как считать элементы с Edit и перевести их в динамический массив типа double?
Можно пожалуйста пример для двумерного и одномерного массива?

11
Sasha
4924 / 2388 / 530
Регистрация: 05.06.2008
Сообщений: 7,482
Записей в блоге: 3
27.05.2011, 18:29 2
http://www.cyberforum.ru/cpp-builder...ead215025.html
1
gs.Soroka
0 / 0 / 1
Регистрация: 05.04.2011
Сообщений: 25
27.05.2011, 19:49  [ТС] 3
пробовал- не работает(((
0
MsGuns
536 / 536 / 57
Регистрация: 04.04.2011
Сообщений: 2,002
27.05.2011, 23:59 4
Надо проверять содержимое эдитов на число
0
Sasha
4924 / 2388 / 530
Регистрация: 05.06.2008
Сообщений: 7,482
Записей в блоге: 3
28.05.2011, 00:02 5
Цитата Сообщение от gs.Soroka Посмотреть сообщение
пробовал- не работает(((
Выложи код как пробывал?
1
gs.Soroka
0 / 0 / 1
Регистрация: 05.04.2011
Сообщений: 25
28.05.2011, 12:45  [ТС] 6
Цитата Сообщение от 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
4924 / 2388 / 530
Регистрация: 05.06.2008
Сообщений: 7,482
Записей в блоге: 3
28.05.2011, 13:35 7
А так?
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
gs.Soroka
0 / 0 / 1
Регистрация: 05.04.2011
Сообщений: 25
28.05.2011, 16:12  [ТС] 8
Цитата Сообщение от 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
4924 / 2388 / 530
Регистрация: 05.06.2008
Сообщений: 7,482
Записей в блоге: 3
28.05.2011, 18:24 9
Цитата Сообщение от 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
gs.Soroka
0 / 0 / 1
Регистрация: 05.04.2011
Сообщений: 25
28.05.2011, 19:25  [ТС] 10
Цитата Сообщение от 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
4924 / 2388 / 530
Регистрация: 05.06.2008
Сообщений: 7,482
Записей в блоге: 3
28.05.2011, 19:25 11
Цитата Сообщение от gs.Soroka Посмотреть сообщение
В эдит пишу 33,4 а в дбгрид отображает 33 ,вот код
Код C++1 c=StrToFloat(Edit4->Text);
кто знает?
Тип поля базы какой?
1
gs.Soroka
0 / 0 / 1
Регистрация: 05.04.2011
Сообщений: 25
28.05.2011, 19:36  [ТС] 12
Цитата Сообщение от Sasha Посмотреть сообщение
Тип поля базы какой?
Тип поля был денежный,я уже написал что разобрался))
указал double c;
0
28.05.2011, 19:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.05.2011, 19:36

Отображение данных в Edit
Ребята подскажите пожалуйста. Вот я сделал чтобы отображались данные в DBEdit....

Вставка данных в базу из Edit
Доброго времени суток! void __fastcall TForm2::Button1Click(TObject *Sender) {...

Ввод всех данных с Edit
Если Edit-ы не введены выводит сообщение &quot; Заполните все поля&quot; помогите решить...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru