Все бесплатно
    Все ссылки на файлы, расположенные на страницах сайта, добавлены пользователями и доступны для бесплатного скачивания. За содержание этих файлов администрация сайта ответственности не несет.



Вопросы
  Подсчет времени какого-либо события
   Категория: Математика
  Округление целого числа до 5
   Категория: Математика
  Как в Memo прокрутить текст
   Категория: Компоненты
  Удалить свой же exe-шник
   Категория: Приложение
  Как получить дату создания файла
   Категория: Файловая система
  Быстрое копирование файлов
   Категория: Файловая система
  Округление в большую сторону
   Категория: Математика
  Распознавание кодировки. Перекодировка.
   Категория: Текст и строки
  Как соединить несколько файлов в один
   Категория: Текст и строки

Delphi - База Знаний: Подсветить часть текста в DBGrid

  << Вернуться к Содержанию  

 //Таблица - mem
//Поле - Detail_name
//Edit для поиска - eFind

procedure TfrmMain.GridDrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumnEh;
  State: TGridDrawState);
var i, tmpPos: integer;
  s, e, f2: string;
  r: TRect;
begin
  if DataCol = 2 then
  begin
    with Grid.Canvas do
    begin
      r := Rect;
      FillRect(r);
      e := AnsiUpperCase(eFind.Text);
      f2 := AnsiUpperCase(MemDetail_name.Text);
      i := pos(e, f2);
      if i <> 0 then
      begin
        s := copy(MemDetail_name.Text, 1, i - 1);
        Font.Color := clBlack;
        Font.Style := [];
        TextOut(r.Left, r.Top, s);
        r.Left := r.Left + TextWidth(s);
        Brush.Color := $00CCFFFF;
        tmpPos := Pos(e, f2);
        s := Copy(MemDetail_name.Text, tmpPos, Length(e));
        Font.Color := clMaroon;
        Font.Style := [fsBold];
        TextOut(r.Left, r.Top, s);
        r.Left := r.Left + TextWidth(s);
        Brush.Color := clWhite;
        s := copy(MemDetail_name.Text, i + length(eFind.Text), length(f2));
        Font.Color := clBlack;
        Font.Style := [];
        TextOut(r.Left, r.Top, s);
      end else
      begin
        TextOut(r.Left, r.Top, MemDetail_name.Text);
      end;
    end;
  end;
end;

procedure TForm1.Edit1Change(Sender: TObject);
begin
DBGrid1.Repaint;
end;
  << Вернуться к Содержанию