Форум: "Основная";
Текущий архив: 2002.12.16;
Скачать: [xml.tar.bz2];
ВнизКак неписать много if Найти похожие ветки
← →
kepten (2002-12-05 09:50) [0]Ситуация такая есть поисковая форма где около 20 edit пользователь может производить поиск по любому полю я должен прописать if ((edit1.text="")and(edit2.text<>""......)then таких условий получится очень много как это сделать попроще;
← →
KoluChi (2002-12-05 09:56) [1]Сделать массив Edit"ов и проверять в цикле, а можно написать класс в котором будет список Edit"ов и полей за которые они отвечают.
← →
Илайдж (2002-12-05 10:27) [2]Для этого существует StringGrid
← →
kepten (2002-12-05 11:36) [3]Я что-то непонял а причём здесь StringGrid
← →
Skier (2002-12-05 11:41) [4]>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:47) [5]Нет никакой закономерности просто в зависимости от того какие edit заполнены будет выполняться sql запрос
← →
Ihor Osov'yak (2002-12-05 11:48) [6]Как вариант
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:51) [7]Спасибо буду пробовать
← →
Separator (2002-12-05 11:55) [8]Приведи свой код, чтоб посмотреть что конкретно требуется сделать в твоей проге
← →
Tundra (2002-12-05 12:00) [9]вообще ты не дал достаточно сведений - например по полям по которым надо искать - нет списка поле.
Вот тебе код для случая когда в каждое поле вводится выр-е типа
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
← →
Tundra (2002-12-05 12:01) [10]St - это строка после where в запросе SQL
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.12.16;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.01 c