Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как в ячейке DBGrid выделить определенное количество символов? [D4, D5, D6, D7]


aVast ©   (2003-10-15 16:21:00) 

Необходимо организовать быстрый поиск по полям отображаемым в гриде, выглядеть это должно так:
1. При щелчке пользователя по заголовку столбца выполняется сортировка данных по этому полю
2. При вводе с клавиатуры выполняется поиск записей, поле сортировки которых начинается с символов соответствующих введенной строке. Естественно курсор позиционируется на найденную запись.
3. При переходе на найденную запись в ячейке грида выделяются только первые несколько символов, введенных пользователем.

Первый и второй пункты я благополучно выполнил, а вот с выделением символов ячейке справиться не могу.

Помогите!!!

З.ы.: если я вопрос слишком мудрено поставил скажите попытаюсь перефразировать.


Johnmen   (2003-10-16 11:52:00) [1]

Для понимания
http://www.delphikingdom.com/helloworld/dbgridcolor.htm


aVast   (2003-10-16 11:34:00) [2]

спасибо


sts   (2003-10-16 11:31:00) [3]

Тебе же ответили : OnDrawColumnCell, рисовать при помощи Canvas.
Дальше F1


aVast   (2003-10-16 11:27:00) [4]

НУ ПОДСКАЖИТЕ ЖЕ КТО НИБУДЬ!!!


aVast   (2003-10-16 08:32:00) [5]

Куча исчерпывающих ответов просто поражает...


aVast   (2003-10-15 18:12:00) [6]

> Chel (15.10.03 17:59)
WriteText это что за метод?
и чем заполняется Arect?


Chel   (2003-10-15 17:59:00) [7]

Не знаю насколько верно мое решения, но я делал через Canvas. Вот где то примерно так:
if (gdFocused in State) and StartSearching then
begin
canva := TexDBGrid(sender).Canvas;
RestText:="";
if Column.Field.Value <> null then
RestText := Column.Field.Value;
delete(RestText,length(SearchText)+1,Length(RestText));
if SearchText<>"" then
begin
Canva.Brush.Color := clBlack;
Canva.Font.Color:= clWhite;
WriteText(canva,Arect,RestText,taLeftJustify);
end;
end;

Это все происходит в событие OnDrawColumnCell.


aVast   (2003-10-15 17:46:00) [8]

> Johnmen © (15.10.03 16:33)
а как?


aVast   (2003-10-15 17:44:00) [9]

и еще, хотелось бы все таки, сделать все на стандартных компонентах


aVast   (2003-10-15 17:41:00) [10]

> dmtr © (15.10.03 16:31)
может быть подскажешь способы. У меня есть DBGridEh, только я его еще не копал...


Johnmen   (2003-10-15 16:33:00) [11]

Это вопрос отображения ? Тогда, как обычно, в OnDrawColumnCell.


dmtr   (2003-10-15 16:31:00) [12]

DBGridEh делает пункт 2 и 3


Наверх

Титульная страница Поиск, карта сайта Написать письмо