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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.08.2011, 19:39   #1
welcomeTo
Пользователь
 
Регистрация: 27.05.2010
Сообщений: 43
По умолчанию Пробежаться по всем Edit'aм в Panel

Здравствуйте, подскажите, пожалуйста что я делаю не так?
Необходимо проверить то что поля TEdit заполнены
Код:
//проверяем поля на непустые значения
  for i:=1 to (Panel1.ControlCount) do
  begin
    if (Panel1.Components[i] is TEdit)  then begin
      if (Length((Form1.Components[i] as TEdit).Text) < 2) then begin
        ShowMessage('Çàïîëíèòå âñå ïîëÿ');
        exit;
      end;
    end;
  end;
welcomeTo вне форума Ответить с цитированием
Старый 04.08.2011, 19:41   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А что не так? Не компилится? Или не работает?

А зачем во вложенном if exit?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 04.08.2011, 19:46   #3
welcomeTo
Пользователь
 
Регистрация: 27.05.2010
Сообщений: 43
По умолчанию

Ошибка:
http://file.qip.ru/photo/N3joyNSZ/вав.html ( 36,29 Кб )
Цитата:
А зачем во вложенном if exit?
надо сделать выход из процедуры
welcomeTo вне форума Ответить с цитированием
Старый 04.08.2011, 19:56   #4
Zer0
Форумчанин
 
Аватар для Zer0
 
Регистрация: 13.12.2007
Сообщений: 788
По умолчанию

цикл измените на
for i:=0 to Panel1.ControlCount-1
это раз
во вторых - если создавали Edit'ы не динамически, а в редакторе (а судя по ошибке так и есть), то таким способом ничего не выйдет, надо просматривать компоненты формы, а не панели. Ну либо Owner'а у этих Edit'ов в программе поменять
благодарность - сюда (не забываем писать от кого)
Zer0 вне форума Ответить с цитированием
Старый 04.08.2011, 22:08   #5
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,542
По умолчанию

Цитата:
цикл измените на
for i:=0 to Panel1.ControlCount-1
это раз
ту тогда два это
Panel1.Controls[i] is TEdit
и нет проблемы
Цитата:
Panel1.Components[i] is TEdit)
поскольку parent уже правильный.

Вместо Exit (выход из процедуры) внороятно надо было break (прервать цикл)?

pane1.compont[i] <> form1.component[i]
если проверяем тип panel1.componentw, то и дальше надо работать с ним же, а не браться за form1.components.
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 04.08.2011 в 22:23.
evg_m вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Операция с panel grafgrial Общие вопросы Delphi 7 31.03.2010 20:35
Panel начинающий1 Компоненты Delphi 6 15.10.2009 13:58