Сравнение дат в Delphi 7, фильтр

программирование программы базы данных Delphi делфи

Есть DBGrid, столбцы "Дата", "Наименование СИ", "Заводской номер", "Тип СИ", тип Date.
При нажатии на кнопку проверяется, истекла ли дата (данные столбца выводятся в DateTimePicker), и если да, то вылезает сообщение.
Вот код:

procedure TForm2.Button4Click(Sender: TObject);
var
d1, d2: TDate;
begin
DateTimePicker2.DateTime:=Form5.DBGrid2.DataSource.DataSet.FieldByName('Дата последней поверки).AsVariant;
d1 := Date ();
d2 := DateTimePicker2.Date;
if d1 > d2 then
ShowMessage('Дата истекла ');
end;

Как сделать так, чтобы это делалось автоматически при запуске программы, и в сообщении указывались данные из столбцов "Наименование СИ", "Заводской номер", "Тип СИ" ?





И ещё вопрос: как сделать нормальный поиск в DBGrid? Чтобы после ввода слова или буквы в Edit при нажатии на кнопку в DBGrid оставались только те записи, которые подходят под условие?

Сейчас использую этот код, но он просто указатель перемещает на нужную строку. А если есть несколько строк с одинаковым названием, надо чтобы он только их показывал.

procedure TForm2.BitBtn1Click(Sender: TObject);
begin
if not DBGrid1.DataSource.DataSet.Locate('Наименование СИ',Edit1.Text,[])
then ShowMessage('Поиск не дал результатов');
end;

Примечание:
фильтр через DataSet не работает, появляется ошибка.
Вот код, который я использую:

procedure TForm8.Button1Click(Sender: TObject);
begin
DBGrid1.DataSource.DataSet.Filter:='Наименование СИ='+Edit1.Text;
DBGrid1.DataSource.DataSet.Filtered := true ;
end;

Появляется ошибка "Table1.Field 'H' not found"

Излазил множество сайтов, везде практически одинаковый код, но ошибка у меня все та же.
Как исправить можно?
Ответы:
1. Смотрите событие формы OnCreate. Код функции будет такой:
procedure TForm2.FormCreate(Sender: TObject);
begin
 Button4Click(Sender);
end;


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.