Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как  неписать много if [D6]


kepten ©   (2002-12-05 09:50:00) 

Ситуация такая есть поисковая форма где около 20 edit пользователь может производить поиск по любому полю я должен прописать if ((edit1.text="")and(edit2.text<>""......)then таких условий получится очень много как это сделать попроще;


Tundra   (2002-12-05 12:01:00) [1]

St - это строка после where в запросе SQL


Tundra   (2002-12-05 12:00:00) [2]

вообще ты не дал достаточно сведений - например по полям по которым надо искать - нет списка поле.
Вот тебе код для случая когда в каждое поле вводится выр-е типа
MyField1="Петров"
попробуй так если я правильно тебя понял
frm-твоя форма
var st:string;
Begin
for i:=0 to frm.ComponentCount-1 do
begin
st:="true";
if frm.components[i].ClassNameIs("tedit") then
begin
if tedit(frm.components[i]).text<>"" then
st:=St+ " and " tedit(frm.components[i]).text
end
end
end


Separator   (2002-12-05 11:55:00) [3]

Приведи свой код, чтоб посмотреть что конкретно требуется сделать в твоей проге


kepten   (2002-12-05 11:51:00) [4]

Спасибо буду пробовать


Ihor Osov'yak   (2002-12-05 11:48:00) [5]

Как вариант


repeat

if not (условие 1) then break;
if not (условие 2) then break;
..
if not (условие n) then break;

ShowMessage("Нашел и счас сделаю !!!!!")

break
until false;


Отлаживать это намного проще ....
Или вынеси это в отдtльную ф-цию, не нужно псевдоцикла, а вместо break - exit..

Зы , есть у меня еще коллега- извращенец (Вова, привет), так вот, он еще юзает

try
if ... abort;
if ... abort;

...
except

end







kepten   (2002-12-05 11:47:00) [6]

Нет никакой закономерности просто в зависимости от того какие edit заполнены будет выполняться sql запрос


Skier   (2002-12-05 11:41:00) [7]

>kepten
А у тебя есть какая-нибудь закономерность в построении
условий для edit-ов или это простой перебор ? Типа:


if ((edit1.text="")and(edit2.text<>""......) then
if ((edit1.text="")and(editN.text<>""......) then
//..........................
if ((edit2.text="")and(edit3.text<>""......) then
if ((edit2.text="")and(edit4.text<>""......) then
//.............................

???



kepten   (2002-12-05 11:36:00) [8]

Я что-то непонял а причём здесь StringGrid


Илайдж   (2002-12-05 10:27:00) [9]

Для этого существует StringGrid


KoluChi   (2002-12-05 09:56:00) [10]

Сделать массив Edit"ов и проверять в цикле, а можно написать класс в котором будет список Edit"ов и полей за которые они отвечают.


Наверх

Титульная страница Поиск, карта сайта Написать письмо