Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Поиск в DBGrid [D6, Win2k]


Explorer ©   (2002-07-01 12:13:00) 

Мастера!
Подскажите как лучше осуществить поиск данных в DBGride?
Или ссылочку на примерчик?


Дядя Будда   (2002-07-01 14:10:00) [1]

TMyDBGrid = class(TRxDBGrid)

private
fSearchBuffer: string;
fOnSearch: TSearchEvent;
fSearchTimer: TTimer;
procedure WMButtonClick(var Message: TMessage); message WM_CHAR;
procedure OnSearchTimer(aSender: TObject);
procedure SetSearchBuffer(aValue: string);

published
property SearchBuffer: string read fSearchBuffer write SetSearchBuffer;

end;

procedure TMyDBGrid.WMButtonClick(var Message: TMessage);
begin
inherited;
with Message do
if wParam >= 32 then
begin
SearchBuffer:= SearchBuffer + Chr(wParam);
DataSource.DataSet.Locate(SelectedField.FieldName, SearchBuffer,
[loCaseInsensitive, loPartialKey]);
fSearchTimer.Enabled:= false;
fSearchTimer.Enabled:= true;
end;
end;

procedure TMyDBGrid.OnSearchTimer(aSender: TObject);
begin
SearchBuffer:= "";
fSearchTimer.Enabled:= false;
end;

procedure TMyRxDBGrid.SetSearchBuffer(aValue: string);
begin
fSearchBuffer:= aValue;
if Assigned(fOnSearch) then
fOnSearch(Self, aValue);
if aValue <> "" then
fSearchTimer.Enabled:= true;
end;


Anatoly Podgoretsky   (2002-07-01 12:50:00) [2]

Если по текущему индексному полю, то очень быстро FindKey


Skier   (2002-07-01 12:44:00) [3]

>Explorer
Можно через Locate.


Игорь Шевченко   (2002-07-01 12:40:00) [4]

Очевидно, Locate ?
Кстати, рекомендую TDbGridEh из EhLib (взять можно на www.torry.net), там реализован "поиск в гриде". Компонент бесплатный для Ex-USSR


Explorer   (2002-07-01 12:35:00) [5]

Да!
А как это реализовать?


Skier   (2002-07-01 12:17:00) [6]

>Explorer
Так, наверное, надо искать не в DBGride, а в
DataSource.DataSet, к которому он подключён ? Или нет ??


Наверх

Титульная страница Поиск, карта сайта Написать письмо