|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Locate и поиск далее
Подскажите, как можно после вызова Locate, далее делать поиск по записям!? Я написала новую функцию в которой с помощью Next записи перебираются, но это очень долго и не красиво. Подскажите, как ещё можно ?
|
#2
|
||||
|
||||
Всмысле после вызова Locate?
А по вопросу: Либо Next в цикле, либо SQL в TQuery. |
#3
|
|||
|
|||
да..после Locate нужно искать снова эту же запись, я уже делала через Next...очень медленно.
|
#4
|
||||
|
||||
Locate находит запись, даже после изменения этой записи курсор остается на ней. Зачем ее еще раз искать?
|
#5
|
|||
|
|||
я имею ввиду тот же параметр или запись в этом столбце!
к примеру : если слово город повторяется раз 5! |
#6
|
||||
|
||||
Ясно. Тогда только Next или SQL запросом. Если есть проблемы с SQL пиши что точно надо сделать.
|
#7
|
||||
|
||||
И это вы еще незадумались о продолжении поиска на последнем найденом элементе - остановиться или идти по кругу. Да плюс к этому добавьте желание искать по части слова, да еще и выделять цветом все найденые вхождения. Вот веселуха.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#8
|
|||
|
|||
Сделала совершенно не используя Locate и тому подобное.
Страдалецъ, спасибо, обо всем позаботилась. |
#9
|
||||
|
||||
ответ в студию...
|
#10
|
||||
|
||||
Ну что сказать - Молодца.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#11
|
|||
|
|||
код
//хотите описываайте , хотите нет function TDataSet.FindFirst: Boolean;
Код:
function TDataSet.FindFirst: Boolean;begin Result := FindRecord(True, True); end; function TNPSForm.GetFilter: string; var Pole : Shortstring; begin // выбор поля ... case RadioGroup1.ItemIndex of 0: Pole := 'Какое хотите1'; 1: Pole := 'Какое хотите2' ; 2: Pole := 'Какое хотите3' ; end; if edName.Text = ' ' then begin ShowMessage ('Ни чего не набрали!'); exit; end else Result := Pole + ' = ' + Trim(edName.Text) end; procedure TNPSForm.SearchFirst; begin ReadQuery.Filter := GetFilter; if not ReadQuery.FindFirst then Application.MessageBox('Данные не найдены', 'Поиск', MB_OK + MB_ICONINFORMATION) else Next.Visible:= true; end; procedure TNPSForm.Button3Click(Sender: TObject); var DSAfterScroll: TDataSetNotifyEvent; DSDataChange: TDataChangeEvent; begin DSAfterScroll := ReadQuery.AfterScroll; DSDataChange := dsRead.OnDataChange; ReadQuery.AfterScroll := nil; dsRead.OnDataChange := nil; SearchFirst; ReadQuery.AfterScroll := DSAfterScroll; dsRead.OnDataChange := DSDataChange; end; Последний раз редактировалось Admin, 13.04.2009 в 15:29. |
#12
|
||||
|
||||
Во-порвых, "ГДЕ ТЕГИ???" © Модеры форума
Во-вторых - вроде всё верно... или я ошибаюсь... но помоему всё ок. Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |