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

Как реализовать процедуру if

12.06.2015, 10:01. Показов 716. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вообщем на форме имеется 7 компонентов DBEdit как сделать так что бы при сохранении в них введенных данных проверялось заполнены ли все поля если нет то выходила бы ошибка "Дополните данные"
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.06.2015, 10:01
Ответы с готовыми решениями:

Как правильно реализовать процедуру?
Помогите пожалуйста!Процедура не работает!Именно надо с помошью процедуры сделать! Сначала вводим 3 элементы массива,и должен...

Как реализовать в программе процедуру авторизации
Здравствуйте уважаемые программисты. Столкнулся с проблемой 3х разных форм. Суть: есть 3и разные формы (1. Splash заставка 2. ввод пароля...

Как программно реализовать процедуру съема данных?
Разработать цифровой измеритель температуры и давления промышленной установки: - на базе микроконтроллера AVR . . . ; - диапазон...

11
1408 / 572 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
12.06.2015, 10:25
Проверить, заполнены ли все поля ввода
0
0 / 0 / 0
Регистрация: 21.05.2015
Сообщений: 24
12.06.2015, 11:42  [ТС]
Прошел по ссылке, не понял решения проблемы(видимо пень я), у меня задача... вообщем напишу так, БД предназначена для заказчика и чтобы он не оставил пустых полей при сохранении выводилась ошибка, если все поля заполнены то идет сохранение записи, да и у меня кроме DBEdit-ов на форме присутствуют DBComboBox
0
Модератор
 Аватар для D1973
9923 / 6459 / 2457
Регистрация: 21.01.2014
Сообщений: 27,409
Записей в блоге: 3
12.06.2015, 15:16
C++
1
2
3
4
5
6
7
8
9
10
11
12
void __fastcall TForm1::Button2Click(TObject *Sender)
{
  for (int i = 0; i < this->ControlCount; i++)
    if (this->Controls[i]->ClassNameIs("TEdit"))
      if (((TEdit *)this->Controls[i])->Text.Trim().IsEmpty())
       {
         ShowMessage("Введите данные");
         ((TEdit *)this->Controls[i])->SetFocus();
         return;
       }
  ShowMessage("Ok");
}
И что непонятно? Меняешь TEdit на TDBEdit - и все дела...
А вообще-то, использовать всякие там DBEdit, DBComboBox, DBMemo и т.д. - не есть гуд... Эти компоненты напрямую привязываются к набору данных, поэтому всегда требуется уточнять, открыт ли НД для записи, та ли запись в наборе активна и т.д., т.е. всегда есть вероятность того, что в самый неподходящий момент вылезет какой-то непонятный косяк. Гораздо практичнее использовать обычные Edit-ы, ComboBox-ы... Чуть-чуть больше кода, но "вреда" намного меньше. Хотя это - мое личное мнение, хозяин - барин.
0
0 / 0 / 0
Регистрация: 21.05.2015
Сообщений: 24
12.06.2015, 16:35  [ТС]
Вот так у меня получилось:
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
for (int i = 11; i < this->ControlCount; i++)
    if (this->Controls[i]->ClassNameIs("TDBEdit"))
      if (((TDBEdit *)this->Controls[i])->Text.Trim().IsEmpty())
       {
         ShowMessage("Ââåäèòå äàííûå");
         ((TDBEdit *)this->Controls[i])->SetFocus();
         return;
       }
float a,b,c,d,e,f;
float e1,e2,e3,e4,e5;
a=StrToFloat (DBEdit11->Text);
b=StrToFloat (DBEdit12->Text);
c=StrToFloat (DBEdit13->Text);
d=StrToFloat (DBEdit14->Text);
e=StrToFloat (DBEdit15->Text);
e1=b/d;
e2=a/c;
e3=c/d;
e4=a/d;
Edit1->Text=FloatToStr(e1);
Edit2->Text=FloatToStr(e2);
Edit3->Text=FloatToStr(e3);
Edit4->Text=FloatToStr(e4);
Edit5->Text=FloatToStr(e5);
Все вроде работает но при пустых полях он не выводит ошибку ShowMessage а выдает свою ошибку
0
1408 / 572 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
12.06.2015, 16:41
C++
1
for (int i = 0; i < this->ControlCount; i++)
0
Модератор
 Аватар для D1973
9923 / 6459 / 2457
Регистрация: 21.01.2014
Сообщений: 27,409
Записей в блоге: 3
12.06.2015, 16:44
Ну вот о чем и речь. Переноси данные из БД в простые Едиты и работай с ними.

Добавлено через 57 секунд
Цитата Сообщение от DaNTeSNiK Посмотреть сообщение
for (int i = 11;
О. блин, сразу и не увидел... А это ты откуда выкопал???
0
1408 / 572 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
12.06.2015, 16:44
то что ты написал i=11 не значит, что цикл будет искать от DBEdit11
Это поиск по ВСЕМ компонентам, а не только по TDBEdit
0
0 / 0 / 0
Регистрация: 21.05.2015
Сообщений: 24
12.06.2015, 16:53  [ТС]
Цитата Сообщение от D1973 Посмотреть сообщение
Переноси данные из БД в простые Едиты и работай с ними.
а без Этого ни как просто не хочется сейчас отложенную прогу крушить(

Добавлено через 2 минуты
Цитата Сообщение от _Dimon_ Посмотреть сообщение
то что ты написал i=11 не значит, что цикл будет искать от DBEdit11
Это поиск по ВСЕМ компонентам, а не только по TDBEdit
я просто думал он только по DBEdit искать, я так понимаю ограничить поиск не получится
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
15.06.2015, 16:16
Цитата Сообщение от DaNTeSNiK Посмотреть сообщение
ограничить поиск не получится
Ну почему ж. Если тыкнуть, к примеру, костылем:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
String FindControlName = "TDBEdit";
 
for( int i=0; i < this->ControlCount; i++ )
  if( this->Controls[i]->ClassNameIs( FindControlName ) )
    {
    String CurrControlName = this->Controls[i]->Name.Delete( 1, FindControlName.Length()-1 ).Trim();
    if( StrToIntDef( CurrControlName, 0 ) > 10 )
      if( ((TDBEdit *)this->Controls[i])->Text.Trim().IsEmpty() )
       {
         ShowMessage("Ââåäèòå Г¤Г*Г*Г*ûå");
         ((TDBEdit *)this->Controls[i])->SetFocus();
         return;
       }
    }
0
0 / 0 / 0
Регистрация: 21.05.2015
Сообщений: 24
15.06.2015, 19:09  [ТС]
Спасибо за ответ! Код принимает но эффекта однако никакого
0
 Аватар для Fulcrum_013
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
17.06.2015, 19:52
Цитата Сообщение от D1973 Посмотреть сообщение
Ну вот о чем и речь. Переноси данные из БД в простые Едиты и работай с ними.
Если поля пустые то StrToFloat все равно выкинет этот же Exception. Либо проверять что в поле что то есть и только когда там что то есть пытаться конвертировать, либо пользовать TryStrToFloat и уже по результату ставить молча в то поле которое некорректно заполнено.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.06.2015, 19:52
Помогаю со студенческими работами здесь

Как процедуру в Паскале реализовать, как функцию в с++?
Здравствуйте! Есть код на Паскале. Нужно процедуру реализовать в С++ как функцию. Возможно ли в моем случае? Попробовал по-всякому, но у...

Реализовать процедуру авторизации в приложении с БД
Доброго времени суток, уважаемые форумчане. Посоветуйте, пожалуйста, хорошую книгу, где описано, как работать с БД через C#. Задача...

реализовать вручную процедуру AnsiStrPos
Помогите пжл реализовать вручную процедуру AnsiStrPos.Сам с ней не работаю,просят помочь.

Реализовать классы, используя процедуру наследования
Здравствуйте! Задание: Создать класс КВАДРАТ, члены класса - длина стороны. Предусмотреть в классе методы вычисления и вывода...

Реализовать процедуру введения двоякого дерева
program tree; const n=7; type st=^sp; sp = record left,right:st; inf:integer; end; ...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru