Текущий архив: 2002.07.15;
Скачать: CL | DM;
ВнизПоиск в DBGrid Найти похожие ветки
← →
Explorer (2002-07-01 12:13) [0]Мастера!
Подскажите как лучше осуществить поиск данных в DBGride?
Или ссылочку на примерчик?
← →
Skier (2002-07-01 12:17) [1]>Explorer
Так, наверное, надо искать не в DBGride, а в
DataSource.DataSet, к которому он подключён ? Или нет ??
← →
Explorer (2002-07-01 12:35) [2]Да!
А как это реализовать?
← →
Игорь Шевченко (2002-07-01 12:40) [3]Очевидно, Locate ?
Кстати, рекомендую TDbGridEh из EhLib (взять можно на www.torry.net), там реализован "поиск в гриде". Компонент бесплатный для Ex-USSR
← →
Skier (2002-07-01 12:44) [4]>Explorer
Можно через Locate.
← →
Anatoly Podgoretsky (2002-07-01 12:50) [5]Если по текущему индексному полю, то очень быстро FindKey
← →
Дядя Будда (2002-07-01 14:10) [6]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;
Страницы: 1 вся ветка
Текущий архив: 2002.07.15;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.012 c