Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
14-51925
Anatoly Podgoretsky
2002-11-25 07:56
2002.12.16
Именинники 25 ноября


1-51727
Быстрый
2002-12-04 16:02
2002.12.16
Как добавить на форму контрол в реалтайме ?


3-51630
Sergey_Suhoy
2002-11-27 10:44
2002.12.16
Переименование полей на DBGrid & обработка ошибки Key Violation


7-51986
SergePik
2002-10-14 15:12
2002.12.16
адрес LPT порта в Win2k


4-52024
TankMan
2002-10-30 23:22
2002.12.16
Событие OnMouseOver на Label?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский