Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.04.2012, 22:35   #1
flouwjke
Пользователь
 
Регистрация: 09.02.2012
Сообщений: 26
Восклицание Чек мемок на пустоту и MessageBox

Чекаю мемки на пустоту а при закрытии вывожу диалог если пусты то "Не все поля заполнены. Закрыть форму?" да/нет Да закрывает форму нет возвращает форму, но почему то даже када все поля заполнены он пишет "Не все поля заполнены. Закрыть форму?"
вместо "Завершить ввод данных по объекту?"

Код:
Function IfSpace(Sender : TEdit): Boolean;
begin
   Result := Length(Sender.Text) = 0;
end;


procedure TForm4.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var
   bEmpty : Boolean;
   j: byte;
begin
   bEmpty := False;
 

   for j := 1 to 20 do
      bEmpty := bEmpty or (Length((FindComponent('Memo' + IntToStr(j)) as TMemo).Text) = 0);
 
   if bEmpty then
      CanClose := MessageBox(Handle, PChar('Не все поля заполнены. Закрыть форму?'),
                  PChar('Внимание!'), MB_OKCANCEL or MB_ICONWARNING) = IDOK
   else 
      CanClose := MessageBox(Handle, PChar('Завершить ввод данных по объекту?'),
                  PChar('Внимание!'), MB_OKCANCEL or MB_ICONINFORMATION) = IDOK;
end;
flouwjke вне форума Ответить с цитированием
Старый 29.04.2012, 22:55   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,309
По умолчанию

Я не могу сказать, почему так происходит, но вы можете попробовать отладить сами
Код:
for j := 1 to 20 do
      begin
      bEmpty := bEmpty or (Length((FindComponent('Memo' + IntToStr(j)) as TMemo).Text) = 0);
      showmessage(inttostr(bEmpty)+' '+inttostr(j));
      end;
Посмотрите, из-за какого memo происходит поднятие флага.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 29.04.2012, 23:02   #3
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Видать какой-то из 20-ти Memo не существует на этой форме?
eoln вне форума Ответить с цитированием
Старый 29.04.2012, 23:09   #4
flouwjke
Пользователь
 
Регистрация: 09.02.2012
Сообщений: 26
По умолчанию

Всем сяп очевидного обычно не замечаешь
flouwjke вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка множества Memo на пустоту flouwjke Помощь студентам 3 29.04.2012 20:56
Алгоритм чек суммы? NeckTo Помощь студентам 0 21.03.2011 21:44
Проверка RichViewEdit на пустоту Shouldercannon Общие вопросы Delphi 2 22.05.2010 02:58
проверка файла на пустоту vitaliy1911 Общие вопросы Delphi 7 19.05.2010 22:16
сцепить по чек боксам AChrist Microsoft Office Access 1 14.12.2009 19:02