Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.037 c
2-1124979008
_Alex_2
2005-08-25 18:10
2005.10.16
создание exe


14-1127539197
Карелин Артем
2005-09-24 09:19
2005.10.16
Проверка компьютера касперским.


14-1127678399
GanibalLector
2005-09-25 23:59
2005.10.16
автолюбителям посвящается


14-1127479695
oldman
2005-09-23 16:48
2005.10.16
Вот послали меня читать курсы...


1-1127723187
Andsin
2005-09-26 12:26
2005.10.16
Сравнение двух величин TNotifyEvent




   Наверх