Добавлено: 15 ноя 2006, 12:42
спасибки!
Код: Выделить всё
procedure TForm1.Button1Click(Sender: TObject);
//запуск поиска
begin
//проверка, не пусто ли поле поиска
if length(edit1.text)=0 then showmessage('Поле поиска пусто!')
else
begin
//определение, какой из переключателей выбран и поиск в соответсвующем поле базы данных
if radiobutton1.checked=true then
begin
//поиск по имени оператора в поле базы данных OperatorName
if not Table1.Locate('OperatorName', Edit1.Text, [loPartialKey]) then
ShowMessage('Извините, ничего не найдено!')
else
DBGrid1.SetFocus;
end;
if radiobutton2.checked=true then
//поиск по виду оператора в поле базы данных VidOperatora
begin
Table1.First;
//проверка описания на наличие слова
while (pos(edit1.text, dbmemo2.Text)=0) and (table1.eof=false) do
begin
//если не найдено
Table1.Next;
end;
//если конец таблицы и при этом ничего не найдено
if (pos(edit1.text, dbmemo2.Text)=0) and (table1.eof=true)then
showmessage('Извините, ничего не найдено!');
if pos(edit1.text, dbmemo2.Text)<>0 then
//выделение найденного слова
begin
DBMemo2.SelStart:=(pos(edit1.text, dbmemo2.Text))-1;
DBMemo2.SelLength:=length(edit1.Text);
DBGrid1.SetFocus;
end;
end;
if radiobutton3.checked=true then
//поиск в описании - в поле базы данных AboutOperator
begin
Table1.First;
//проверка описания на наличие слова
while (pos(edit1.text, dbmemo1.Text)=0) and (table1.eof=false) do
begin
//если не найдено
Table1.Next;
end;
//если конец таблицы и при этом ничего не найдено
if (pos(edit1.text, dbmemo1.Text)=0) and (table1.eof=true)then
showmessage('Извините, ничего не найдено!');
//если найдено - выделение найденного слова
if pos(edit1.text, dbmemo1.Text)<>0 then
begin
DBMemo1.SelStart:=pos(edit1.text, dbmemo1.Text)-1;
DBMemo1.SelLength:=length(edit1.Text);
DBGrid1.SetFocus;
end;
end;
end;
//если не выбран ни один из переключателй - предупредить пользователя.
if (radiobutton1.checked=false) and (radiobutton2.checked=false)and (radiobutton3.checked=false) then
showmessage('Выберите, ГДЕ искать!');
end;