![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как неписать много 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"ов и полей за которые они отвечают.