Главная страница
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.031 c
5-1102862014
Hyboid
2004-12-12 17:33
2005.10.16
Кнопка в Edit


5-1103272219
han
2004-12-17 11:30
2005.10.16
Копонент наподобии CombBox


14-1127567220
NewWonder
2005-09-24 17:07
2005.10.16
Помогите с переводом фразы


2-1126083422
Suriken
2005-09-07 12:57
2005.10.16
Титры


14-1127837338
Ученик чародея
2005-09-27 20:08
2005.10.16
Как идет сложение обыкновенных дробей?