Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Программирование под Windows > C++ Builder
Перезагрузить страницу Три EditBox заполнение граф и работа с таблицами
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
FataLL FataLL вне форума
Member
 
Аватар для FataLL
 
Сообщений: 1,783
Сказал(а) спасибо: 2
Поблагодарили 25 раз(а) в 25 сообщениях
Регистрация: 04.11.2004
По умолчанию Три EditBox заполнение граф и работа с таблицами - 07.02.2006, 09:21

Собственно, всё элементарно. Три EditBox'a, пользователю разрешается заполнить два любых. Алгоритм защиты от дурака должен по нажатию на Button проанализировать ввод и вернуть ошибку (-1), если заполнено менее двух EditBox'ов, либо Tag незаполненного EditBox'а.

P.S. Вопрос стоит именно в "красивости". Городить 48 if не надо... :!:

P.P.S. Для тех, кому интересно. Учить меня не надо, хорошо?
Ответить с цитированием
  (#2 (permalink)) Старый
Nicky_cr Nicky_cr вне форума
Member
 
Сообщений: 102
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 03.01.2006
По умолчанию 07.02.2006, 11:19

Привет
А не мешало бы и поучить, да!
Нужно или массив из ЕдитБоксов сделать, или иметь массив заполненности этих самых ЕдитБоксов, который заполнять в ОнЧенджЕдитБокс...
Потом в цикле все быстренько посчитать....

С уважением Ники..
ЗЫ ну а за кодом как известно в раздел <Все за деньги> к Фуиду...
Ответить с цитированием
  (#3 (permalink)) Старый
Alexiski Alexiski на форуме
Любитель давать советы
 
Сообщений: 4,252
Сказал(а) спасибо: 26
Поблагодарили 51 раз(а) в 51 сообщениях
Регистрация: 16.10.2005
По умолчанию 07.02.2006, 12:17

1) Похоже, без обработки OnChange тут никуда не деться. Собственно, тогда в нем реализуется алгоритм проверки заполенности бокса, который, в частности, должен учитывать, что бокс может из заполненного стать незаполненным
2) Далее - либо простой счетчик заполненных боксов (отслеживать при смене состояния) либо битовая маска заполненных боксов (для удобства присвоить боксам тэги 1, 2, 4, 8..)
Ответить с цитированием
  (#4 (permalink)) Старый
Jonano Jonano вне форума
Специалист
 
Аватар для Jonano
 
Сообщений: 3,541
Сказал(а) спасибо: 2
Поблагодарили 14 раз(а) в 14 сообщениях
Регистрация: 19.04.2005
По умолчанию 07.02.2006, 13:08

Цитата:
Originally posted by Nicky_cr
[b]к Фуиду
Вообще-то он Фууд.
Ответить с цитированием
  (#5 (permalink)) Старый
Nicky_cr Nicky_cr вне форума
Member
 
Сообщений: 102
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 03.01.2006
По умолчанию 07.02.2006, 13:34

биг сорри ФуудУ....
и все таки похоже массив из Едитов будет красивее похоже
Код:
<Обработчик батонКлик>
int count=0;
 for (int i=0;i<3;i++)
   if  (Edit[i]->Text=="") result=Edit[i];  else count++;

if (count<2) result=NULL;
А вот в ОнЧендж надо бы за флагом Enable последить, иначе можно будет заполнить все три Едита.... ну или модифицировать последний if , чтобы обрабатывался и етот вариант...
С увадением Ники....
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
FataLL FataLL вне форума
Member
 
Аватар для FataLL
 
Сообщений: 1,783
Сказал(а) спасибо: 2
Поблагодарили 25 раз(а) в 25 сообщениях
Регистрация: 04.11.2004
По умолчанию 07.02.2006, 18:25

2 Nicky_cr
Опять "двойка"... Спасибо, что "научил"...
Во-первых, приветствуется
Код:
if( Edit->Text.IsEmpty() )
{
   ...
}
Еще раз прочитай условие... Нужен Tag :!:

2 All
OnChange не надо. Хотите массив EditBox'ов? Пишите инициализацию оного. Это тоже код. Хватит рассуждений :!: Пишите код, ежели не слабо :!: :!: :!:
Ответить с цитированием
  (#7 (permalink)) Старый
_shumer _shumer вне форума
Member
 
Сообщений: 30
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 09.01.2006
По умолчанию 07.02.2006, 22:15

Код:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
ShowMessage( (Edit1->Text.IsEmpty()
          +Edit2->Text.IsEmpty()
          +Edit3->Text.IsEmpty())>1?(-1):(Edit1->Text.IsEmpty()*Edit1->Tag+
                                          Edit2->Text.IsEmpty()*Edit2->Tag+
                                          Edit3->Text.IsEmpty()*Edit3->Tag));
}
Ответить с цитированием
  (#8 (permalink)) Старый
Nicky_cr Nicky_cr вне форума
Member
 
Сообщений: 102
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 03.01.2006
По умолчанию 07.02.2006, 22:55

Привет
Красиво что сказать....
С уваженеим Ники.....
Ответить с цитированием
  (#9 (permalink)) Старый
FataLL FataLL вне форума
Member
 
Аватар для FataLL
 
Сообщений: 1,783
Сказал(а) спасибо: 2
Поблагодарили 25 раз(а) в 25 сообщениях
Регистрация: 04.11.2004
По умолчанию 08.02.2006, 06:21

2 _shumer
Крут, бродяга... Вообще молодец :!:
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с таблицами как расчитать данные imported_stager Visual Basic 1 17.02.2011 15:33
Работа с таблицами и БД в Visual Prolog rain_man Prolog 1 22.12.2010 00:08
Работа с таблицами в Excel dkrat Вопросы начинающих программистов 2 12.10.2010 20:50
Работа с таблицами с чего начать portaPRO Visual Basic 0 20.09.2010 18:54
Работа с таблицами объединение столбцов Shake .NET 3 07.12.2009 19:35
Delphi, Paradox работа с несколькими таблицами †Strannik† Другие СУБД 0 15.08.2009 20:56
TStringGrid работа с таблицами 095 Delphi 1 05.11.2007 13:04
Работа с двумя таблицами freeway C++ Builder 1 11.05.2007 20:57
Работа с таблицами и мат действия MySQL AstonClinton MySQL 2 07.09.2006 12:32
Работа с таблицами в VB AANDREE Visual Basic 0 15.10.2005 00:41
Работа с таблицами WORD eugira C++ Builder 0 28.09.2005 18:56
Обработка событий в TDBGRID работа с таблицами jstarks C++ Builder 1 24.05.2004 08:32



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов