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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.02.2009, 20:58   #1
zotox
Форумчанин
 
Регистрация: 09.09.2008
Сообщений: 395
По умолчанию Проверить много значений

И так нужно проверить много значений
Вот такой примерно структурой

if edit1.text='zzz' or edit2.text='455' or edit3.text='242' then
begin
........
end;

Но у меня значений таких много(мне это не удобно писать в if'е много значений)! можно ли как нибуть упростить проверку множества значений?
zotox вне форума Ответить с цитированием
Старый 25.02.2009, 21:41   #2
NeshSoft
Максим Николаев
Форумчанин
 
Аватар для NeshSoft
 
Регистрация: 15.02.2009
Сообщений: 170
По умолчанию

Не обязательно в ручную писать, можно просто копировать
NeshSoft. Программирование на заказ для студентов. Delphi/Pascal. Подробнее на сайте neshsoft.narod.ru
NeshSoft вне форума Ответить с цитированием
Старый 26.02.2009, 10:20   #3
roach1967
Пользователь
 
Регистрация: 21.02.2009
Сообщений: 28
По умолчанию

Здесь скорее всего подойдёт перебор компонентов в цикле. Для этого можно создать два массива - в первом будут имена компонентов (в данном случае Edit1, Edit2, ...), во втором проверяемые значения. Если имена компонентов остаются теми-же, которые предложила Delphi, то их можно просто генерировать.
Проверка в таком случае выглядит так:
Код:
Flag:= true;
for i:= 1 to NumComponent do begin	// Цикл перебора всех компонентов Edit## от 1 до NumComponent
	// Znach - строковый массив с необходимыми значениями.
	// Можно задать двухмерным, тогда меняются условия совпадения.
	if TEdit('Edit' + IntToStr(i)).Text <> Znach[i] then Flag:= false; 
end;
if Flag then begin
	// Здесь код, исполняемый, когда содержимое Edit##.Text совпадает с заданными
end else begin
	// Если хоть одно значение не совпало
end;
Если имена компонентов другие, создаём строковый массив имён компонентов (NameComponent: array[1..NumComponent] as string[16]), и подставить в условие проверки:
Код:
if TEdit(NameComponent[i]).Text <> Znach[i] then Flag:= false;
Но мне кажется, что генерация имён удобнее.
В споре рождается истина.

Последний раз редактировалось roach1967; 26.02.2009 в 10:23.
roach1967 вне форума Ответить с цитированием
Старый 26.02.2009, 13:04   #4
Plague
Забанен
Форумчанин Подтвердите свой е-майл
 
Аватар для Plague
 
Регистрация: 01.11.2006
Сообщений: 420
По умолчанию

например есть логический массив
Код:
var b:array[1..n]of boolean;
для OR
Код:
f:=false;
for i:=1 to n do
f:=f or b[i];
для AND
Код:
f:=true;
for i:=1 to n do
f:=f and b[i];
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана
Plague вне форума Ответить с цитированием
Старый 26.02.2009, 13:10   #5
Disel
Форумчанин
 
Аватар для Disel
 
Регистрация: 08.01.2009
Сообщений: 180
По умолчанию

А как узнать в Edit1 введено что-то или нет?
"Все что натыкано на клаве, ведет тебя к погибели иль славе"
Если помог нажми на весы
Disel вне форума Ответить с цитированием
Старый 26.02.2009, 13:13   #6
DM_bite
Участник клуба
 
Аватар для DM_bite
 
Регистрация: 29.07.2008
Сообщений: 1,091
По умолчанию

Цитата:
А как узнать в Edit1 введено что-то или нет?
Код:
If Edit1.Text:='' then ...
Кто бы ты ни был - не думай о себе слишком (с)
DM_bite вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Много объектов. Манжосов Денис :) Общие вопросы Delphi 5 04.09.2008 22:34
Много переменных Altera Общие вопросы Delphi 15 18.07.2008 08:06
много регистров nntpaha Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 22.12.2007 19:01
Помогите! (много вопросов!) илья too Общие вопросы Delphi 2 20.08.2007 19:58