-
Ребята Доброго времени суток. Не подскажете как организовать проверку на ввод информации в Edit. Т.е. мне нужно проверить если информация введена в 3 edit-а, то выполнять действия, а если информация введена в 5 edit-ов, то выполнять совсем другие действия. Спасибо за понимание.
-
if not Edit1.Text.IsEmpty and not Edit2.Text.IsEmpty and Edit3.Text.IsEmpty then одни действия if not Edit1.Text.IsEmpty and not Edit2.Text.IsEmpty and not Edit3.Text.IsEmpty then другие действия
-
Ругается на IsEmpty , в D7 такой функции нету
-
> [2] Andrey5 © (12.04.14 19:53)
А ну да, Делфи же. А самому никак не догадаться до такого if Edit1.Text <> '' and Edit2.Text <> '' and Edit3.Text = '' then одни действия if Edit1.Text <> '' and Edit2.Text <> '' and Edit3.Text <> '' then другие действия
-
Спасибо большое =)
-
> Andrey5 © (12.04.14 21:08) [4] > > Спасибо большое =)
Trim не забудь ;)
-
Благодарю
-
> Т.е. мне нужно проверить если информация введена в 3 edit- > а, то выполнять действия, а если информация введена в 5 > edit-ов, то выполнять совсем другие действия.
Бз-з-з-з-з-з-з! Несколько странная логика... Поясни, как можно заполнить пять полей (для "других" действий), не заполнив при этом три (для "первых действий")???? например я - юзер, заполняя по очереди все Editы, получаю такой результат: Заполняю третье поле - (проверка на "три Edita" положительная) происходит "действие" (проверка на "пять Editов" отрицательная). Заполняю четвёртое поле - (проверка на "три Edita" положительная) происходит "действие" (проверка на "пять Editов" отрицательная). Заполняю пятое поле - (проверка на "три Edita" положительная) происходит "действие" (проверка на "пять Editов" положительная) происходит "другое действие". Ты именно этого добиваешься?
-
а че странного? ну будет if (edit1.text<>'') and (edit2.text<>'') and (edit3.text<>'') then begin if (edit4.text <> '') and (edit5.text <> '') then другая логика else одна логика end;
-
> а че странного?
А сам не видишь ущербности своего кода? Поля заполняются неким Хуаном, а он на то и Хуан, чтобы заполнять так, как его нога чешется, а не так, как ты себе это в мечтах представлял. Любой Пэдро может начать заполнять (и обязательно начнёт, ибо он Пэдро, а не автор программы) с пятого Edita, а не с первого. и тогда твой код будет в пролёте. Заполнены три поля Edit5, Edit4 и Edit2, а твой код, вместо положенного "действия" жуёт сопли, поверяя на заполненность первых трёх Editов. Вот я и спрашиваю ТС, какую логику он пытается реализовать и для чего? З.Ы. Программируя любое взаимодействие с человеком, постоянно помни о Пэдро, чтобы потом не удивляться "какого Хулио моя супер-пуперская мегапрограмма неправильно работает".
-
> с пятого Edita, а не с первого
а причем здесь порядок? главное же, чтобы были заполнено либо первые 3, либо все 5
-
> главное же, чтобы были заполнено либо первые 3, либо все > 5
А где ты в вопросе ТС увидел по первые??? Он спрашивал про вообще три, и нигде не указал порядок заполнения, вопрос был исключительно про количество. Не надо додумывать за других, надо задавать уточняющие вопросы, что я и сделал, поскольку исходя из первого поста не вижу логической оправданности этих действий.
-
да я бы вообще в цикле проверку делал и взводил флаги, набор которых означает ту или иную операцию. Но автор уже сказал "спасибо", так что мы тут уже чисто междусобойчик устроили
-
> Но автор уже сказал "спасибо"
Исходя из его вопросов, автор не особо продвинутый гуру программирования и сказал спасибо за первое же решение, которое, возможно и подходит, но только в частном случае заполнения по порядку. В общем же случае (произвольный порядок заполнения) проверка не сработает. Да и при "правильном" заполнении будут "лишние" "действия" после заполнения четвёртого и пятого Editов. Так что наш "междусобойчик", возможно, натолкнёт автора на размышления о перестроении логики программы.
-
var
Edits: array[0..4] of TEdit;
Flags: integer;
Flags := 0;
for i:=0 to high(Edits) do begin
if (Trim(Edits[i].Text) <> '') then
Flags := Flags Or Edits[i].Tag;
end;
if (Flags and AllEditsMask) <> 0 then Совсем Другие Действия
else if (Flags and ThreeEditsMask) <> 0 then Действия
-
> [13] Труп Васи Доброго © (14.04.14 10:31) > Так что наш "междусобойчик", возможно, натолкнёт автора > на размышления о перестроении логики программы.
Я понял так - проверка делается в момент нажатия кнопки Ок/Спасти/Сохранить/Принять/ПрыжокНаСледующийЭтапЗависящийОтЗаполнения, так что в такой логике порядок заполнения пофиг. Другое дело, если дествия по заполнению ещё незаполненных зависят от заполненности предположительно уже заполненых, тогда да, путанно как-то.
-
> Я понял так
Ну видишь, твой миелофон так настроен, а на моём зелёная крутилка на 8 поставлена и я понял что
> дествия по заполнению ещё незаполненных зависят от заполненности > предположительно уже заполненых
Да и вообще возможно автор хочет проверять ход/смысл дальнейших действий на основе уже заполненных полей. Может он поисковик какой-то делает, который начинает предварительный поиск объекта по минимум трём характеристикам, а заполнение остальных полей сужает поиск, но если по трём уже ничего не найдено, то заполнять остальные нет смысла и надо сообщить юзеру, чтобы не корячился, заполняя оставшиеся данные. Для определённости и нужны пояснения автора.
-
Нет автора больше. Ждите следующую ветку ;)
|