Если table.refresh делать не в обработчике изменений, а, например по кнопке рядом с эдитом. Тогда можно и проверить на "найден или нет" очень просто - таблица будет пуста
Код: Выделить всё
Table1.refresh;
if Table1.eof then ShowMessage('Искомый текст не найден');
Смысла переделывать на цикл нет. потому, что он фильтрует таблицу и оставляет только те записи, которые удовлетворяют условию. Можно пробежаться по таблице и вывести данные куда-нить, если это необходимо.
Код: Выделить всё
Table1.First;
while not Table1.eof do
ShowMessage(Table1.FieldByName('FIO').asString); // например
Table1.next;
end;
1) в онтэйблфилтер:
Accept := Length(DataSet.FieldByName('FIO').asString) < 7;
2) там же.
Accept := pos('ов', DataSet.FieldByName('FIO').asString) > 0;
3) Вот выделять цветом - сложнее. Если интересно, могу написать примерчик, надо обрабатывать перерисовку. и самому рисовать текст в ячейках. (Ну или использовать rxDBGrid, там это делается проще)
C ComboBox'ом... Там есть метод Text, который и содержит строку в самом комбо. Её можно менять по своему усмотрению.
Если же это DBLookupComboBox, то там Text менять нельзя. Да и он всегда отображает содержимое поля из таблицы списка. Т.е. либо сделать Table.close (для таблицы списка), либо перевести её в положение при старте программы: Table.First
С уважением, Lost Angel...