Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.16;
Скачать: CL | DM;

Вниз

Table   Найти похожие ветки 

 
Курсант   (2005-09-17 21:39) [0]

Я делаю так:

try
DBGrid.DataSource.DataSet.Locate("Number", Edit1.Text, []);
except
on EConvertError do
end;
if Edit1.Text = "" then
Table1.First;
end;


Поиск проходит только на первое найденое значение, вопрос: а как его продолжить по нажатию кнопки "найти далее"?


 
Anatoly Podgoretsky ©   (2005-09-17 22:46) [1]

Ты же просил найти, он нашел, нашел. А дельше это уже не поиск а навигация и делается с помошью навигации - метод .Next и проверка на соответствие.

И у тебя немного бессмысленный код, сначала делаешь поиск. а затем проверяешь строку поиска на пустоту, поменяй местами и сравнение типа if then else


 
Курсант   (2005-09-18 07:48) [2]


> Anatoly Podgoretsky ©   (17.09.05 22:46) [1]


А можете показать на практике?


 
YurikGL ©   (2005-09-18 09:58) [3]

попробуй

  Table1.First;
  try
  DBGrid.DataSource.DataSet.LocateNext("Number", Edit1.Text, []);
  except
  on EConvertError do
  end;


 
Anatoly Podgoretsky ©   (2005-09-18 13:36) [4]

На практике, в простой форме выглядит так

while Value <> template then next


 
Курсант   (2005-09-18 14:38) [5]

Так а как мне продолжить поиск?


 
Anatoly Podgoretsky ©   (2005-09-18 14:53) [6]

Курсант   (18.09.05 14:38) [5]
Как в [4]
Что именно не понятно?
Оформить в виде функции LocateNext


 
Курсант   (2005-09-18 20:00) [7]

Мне не понятно как оформлять. Я не понимаю куда это подставлять еслиможно объясните по подробнее с примером


 
YurikGL ©   (2005-09-18 20:12) [8]


> Мне не понятно как оформлять. Я не понимаю куда это подставлять
> еслиможно объясните по подробнее с примером


ОнБуттонНайтиПервое
Бегин
 Table1.First;
 try
 DBGrid.DataSource.DataSet.LocateNext("Number", Edit1.Text, []);
 except
 on EConvertError do
 end;
Енд

ОнБуттонНайтиСледующее
Бегин
 try
 DBGrid.DataSource.DataSet.LocateNext("Number", Edit1.Text, []);
 except
 on EConvertError do
 end;
Енд


 
Курсант   (2005-09-18 20:17) [9]


> YurikGL ©   (18.09.05 20:12) [8]


[Error] Unit1.pas(341): Undeclared identifier: "LocateNext"

Тоже было и у меня :(


 
Anatoly Podgoretsky ©   (2005-09-18 23:46) [10]

function класс.LocateNext(const KeyFields: string; const KeyValues: Variant; Options: TLocateOptions): Boolean; virtual;


 
Курсант   (2005-09-19 17:02) [11]

А это куда добавлять?
Или что с этим делать?


 
Киса   (2005-09-19 18:40) [12]

Почему Locate работает отлично, а LocateNext нет?


 
Киса   (2005-09-19 18:52) [13]


> Anatoly Podgoretsky ©   (18.09.05 23:46) [10]


А что за класс? откуда его брать?


 
Anatoly Podgoretsky ©   (2005-09-19 18:56) [14]

Его надо написать, а алгоритм приведен выше. Кстати если нет индекса то Locate работает точно также.


 
Киса   (2005-09-19 22:27) [15]

А можно увидедь алгоритм?


 
Anatoly Podgoretsky ©   (2005-09-19 22:31) [16]

1 и 4 сообщения.



Страницы: 1 вся ветка

Текущий архив: 2005.10.16;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.047 c
6-1111927099
Nes
2005-03-27 16:38
2005.10.16
IdUDPClient &amp; IdUDPServer ==> Вешаться или подскажите?


6-1119435840
Drema
2005-06-22 14:24
2005.10.16
Twebbrowser и события в нем


1-1127475917
__DATA__
2005-09-23 15:45
2005.10.16
Получение данных из Exel-я


3-1125483316
Alex Kryuchkov
2005-08-31 14:15
2005.10.16
"Мусор" в полях типа text на БД Sybase


4-1124127936
Eagle Owl
2005-08-15 21:45
2005.10.16
Создание окна с содержимым на WinAPI