Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 09.04.2009, 14:42
on_user on_user вне форума
Прохожий
 
Регистрация: 29.07.2008
Сообщения: 10
Репутация: 10
По умолчанию Locate и поиск далее

Подскажите, как можно после вызова Locate, далее делать поиск по записям!? Я написала новую функцию в которой с помощью Next записи перебираются, но это очень долго и не красиво. Подскажите, как ещё можно ?
Ответить с цитированием
  #2  
Старый 09.04.2009, 14:47
Аватар для TOJluK
TOJluK TOJluK вне форума
Местный
 
Регистрация: 25.02.2009
Адрес: Минск
Сообщения: 551
Версия Delphi: 2007
Репутация: 110
По умолчанию

Всмысле после вызова Locate?

А по вопросу: Либо Next в цикле, либо SQL в TQuery.
Ответить с цитированием
  #3  
Старый 09.04.2009, 15:02
on_user on_user вне форума
Прохожий
 
Регистрация: 29.07.2008
Сообщения: 10
Репутация: 10
По умолчанию

да..после Locate нужно искать снова эту же запись, я уже делала через Next...очень медленно.
Ответить с цитированием
  #4  
Старый 09.04.2009, 15:11
Аватар для TOJluK
TOJluK TOJluK вне форума
Местный
 
Регистрация: 25.02.2009
Адрес: Минск
Сообщения: 551
Версия Delphi: 2007
Репутация: 110
По умолчанию

Locate находит запись, даже после изменения этой записи курсор остается на ней. Зачем ее еще раз искать?
Ответить с цитированием
  #5  
Старый 09.04.2009, 15:15
on_user on_user вне форума
Прохожий
 
Регистрация: 29.07.2008
Сообщения: 10
Репутация: 10
По умолчанию

я имею ввиду тот же параметр или запись в этом столбце!
к примеру : если слово город повторяется раз 5!
Ответить с цитированием
  #6  
Старый 09.04.2009, 15:21
Аватар для TOJluK
TOJluK TOJluK вне форума
Местный
 
Регистрация: 25.02.2009
Адрес: Минск
Сообщения: 551
Версия Delphi: 2007
Репутация: 110
По умолчанию

Ясно. Тогда только Next или SQL запросом. Если есть проблемы с SQL пиши что точно надо сделать.
Ответить с цитированием
  #7  
Старый 09.04.2009, 18:30
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

И это вы еще незадумались о продолжении поиска на последнем найденом элементе - остановиться или идти по кругу. Да плюс к этому добавьте желание искать по части слова, да еще и выделять цветом все найденые вхождения. Вот веселуха.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #8  
Старый 10.04.2009, 13:09
on_user on_user вне форума
Прохожий
 
Регистрация: 29.07.2008
Сообщения: 10
Репутация: 10
По умолчанию

Сделала совершенно не используя Locate и тому подобное.
Страдалецъ, спасибо, обо всем позаботилась.
Ответить с цитированием
  #9  
Старый 10.04.2009, 13:34
Аватар для TOJluK
TOJluK TOJluK вне форума
Местный
 
Регистрация: 25.02.2009
Адрес: Минск
Сообщения: 551
Версия Delphi: 2007
Репутация: 110
По умолчанию

ответ в студию...
Ответить с цитированием
  #10  
Старый 10.04.2009, 13:46
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Ну что сказать - Молодца.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #11  
Старый 13.04.2009, 14:12
on_user on_user вне форума
Прохожий
 
Регистрация: 29.07.2008
Сообщения: 10
Репутация: 10
По умолчанию код

//хотите описываайте , хотите нет 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: Пользуемся тегами!

Последний раз редактировалось Admin, 13.04.2009 в 15:29.
Ответить с цитированием
  #12  
Старый 13.04.2009, 15:29
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Во-порвых, "ГДЕ ТЕГИ???" © Модеры форума
Во-вторых - вроде всё верно... или я ошибаюсь... но помоему всё ок.
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 01:13.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter