Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.13;
Скачать: CL | DM;

Вниз

!!!HELP!!! Обработка события OnFilterRecord в TTable   Найти похожие ветки 

 
Cardinal ©   (2005-02-12 17:50) [0]

Господа, помогите разобраться с ошибочкой, которая вылазит при фильтрации! Приделал к своей программе функцию фильтрации. На специальной форме устанавливаются условия, записываются в переменные и св-ву filtered таблицы (DBF) присваивается true. В обработчике таблицы OnFilterRecord в соответствии со значением переменных устанавливаю значение Accept.

Все работает отлично, но если хотя бы раз при фильтрации не останется ни одной записи то при последующих попытках фильтрации при установке св-ва filtered таблицы все записи не отображаются а событие OnFilterRecord и вовсе не происходит.

Объясните, пожалуйста, что это за глюки! Большое спасибо.


 
Desdechado ©   (2005-02-12 18:11) [1]

попробуй перед установкой очередного фильтра делать
table.disablecontrols();
table.filtered := false;
table.filtered := true;
table.enablecontrols();
просто, насколько помню, фильтр вступает в силу при изменении текущей записи. А если записей нет, то изменить текущую не может.


 
Cardinal ©   (2005-02-12 18:31) [2]


>  [1] Desdechado ©   (12.02.05 18:11)

Пробовал, та же шляпа :-((((((


 
Cardinal ©   (2005-02-12 19:28) [3]

Я уже разобрался со своей шляпой сам :-)

procedure TMainForm.Edit1Change(Sender: TObject);
begin
 if length( Edit1.Text ) > 0 then
 begin
   Table1.Filtered := TRUE;
   UpdateFilter( Table1 );
 end
 else
   Table1.Filtered := FALSE;
end;

procedure TMainForm.UpdateFilter( DataSet: TDataSet );
var
 FR: TFilterRecordEvent;
begin
 with DataSet do
 begin
   FR := OnFilterRecord;
   if Assigned(FR) and Active then
   begin
     DisableControls;
     try
       OnFilterRecord := nil;
       OnFilterRecord := FR;
     finally
       EnableControls;
     end;
   end;
 end;
end;

Pavel Krasikov
(2:5005/7)



Страницы: 1 вся ветка

Текущий архив: 2005.03.13;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.052 c
1-1109667772
Димон
2005-03-01 12:02
2005.03.13
Выяснение причины сообщения "A component named . already exists"


1-1109334745
andr484
2005-02-25 15:32
2005.03.13
Проблема с функцией из DLL


8-1101423024
ункновн
2004-11-26 01:50
2005.03.13
Обработка изображения в Direct3D


9-1102440732
Макс
2004-12-07 20:32
2005.03.13
Коллизии


1-1109696237
T-LIS
2005-03-01 19:57
2005.03.13
Файл-менеджер.