Сначала напишешь тему, опубликуешь, потом прочитал что написал, и появляется идея... Легкое гугление и вуаля:
Код:
if Length(Edit1.Text)>0 then begin
Form1.ADOQuery1.Filter:='user_name LIKE '+quotedstr('%'+Edit1.text+'%')+
' OR groups LIKE '+quotedstr('%'+Edit1.text+'%');
Form1.ADOQuery1.Filtered:=true;
end
else begin
Form1.ADOQuery1.Filter:='';
Form1.ADOQuery1.Filtered:=false;
end;
Так "мерцания" нет. А также нет надобности переименовывать columns после фильтрации. Единственное при закрытии формы (если она второстепенная, например для выбора чего-то) нужно очищать и выключать Filtered.