Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.08.2009, 10:02   #1
funball
Пользователь
 
Регистрация: 13.04.2009
Сообщений: 44
По умолчанию DBGrid2(CellClick) фокус на строке в цвете в DBGrid1

Добрый день.

Вопрос прост, но т.к. я не программист, то искал-искал, да не нашел...
Подскажите пжл. как реализовать следующую вещь:

Есть два грида, DBGrid1,DBGrid2.
- в DBGrid1 есть строка, которая выделена цветом с помощью DrawColumnCell.
- выделяется она по щелчку на DBGrid2(CellClick).
Вопрос: как мне при щелчке на DBGrid2(CellClick) сфокусировать ту самую стору в DBGrid1, которая получила цвет?

Сейчас пока вариан такой:
DBGrid2CellClick
begin
--
DBGrid1.Refresh;
DBGrid1.SetFocus;
end.
Естественно фокус на первой строке в DBGrid1. А вот как сделать фокус на той что в цвете?
funball вне форума Ответить с цитированием
Старый 31.08.2009, 10:33   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
А вот как сделать фокус на той что в цвете?
А какая из них в цвете? Как ты вообще отрисовываешь?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 31.08.2009, 11:02   #3
funball
Пользователь
 
Регистрация: 13.04.2009
Сообщений: 44
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А какая из них в цвете? Как ты вообще отрисовываешь?
"в цвете" имелось ввиду что одна строка грида выделена цветом.
Эта строка в DBGrid1. Цвет устанавливается по CellClick на DBGrid2 по определенным условиям набора данных ADOQuery.

Сам цвет устанавливается событием DrawColumnCell DBGrid1 где если значение совпало с значением ADOQuery DBGrid2, то выделяется строка цветом.
DBGrid2CellClick
begin
--определение значения
DBGrid1.Refresh;--для того чтобы DrawColumnCell DBGrid1 выделело цветом по значению строку в DBGrid1
DBGrid1.SetFocus;

как чтобы вместо DBGrid1.SetFocus зделать чтобы сфокусировать на ту строку, которую выделело DrawColumnCell DBGrid1?
funball вне форума Ответить с цитированием
Старый 31.08.2009, 11:11   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Вообще навигации в DBGrid запрещены, он полностью подчиняется набору Table или Query Или чего там уу тя. Если ты хочешь поставить курсор на запись, подсвеченную в ДБГриде, тебе нужно знать ее позицию относительно нуля. и перейти к ней:
Код:
.First
.MoveBy(номер записи);
Или при перемещении курсора в первой таблице в OnAfterScroll выполняй метод Locate для второго набора (с которым второй грид связан), где указывай значение нужного поля, которое должно быть найдено во второй таблице.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 31.08.2009, 16:25   #5
funball
Пользователь
 
Регистрация: 13.04.2009
Сообщений: 44
По умолчанию

Решил реализовать цикл в DBGrid2CellClick:
max:=ADOQuery_1.RecordCount;
p_dlia_videlenia:=ADOQuery_2.FieldB yName('ORDER#').AsString;
for i:=0 to max-1 do
begin
DBGrid1.DataSource.DataSet.RecNo:=i +1;
if DBGrid1.Fields[0].AsString=p_dlia_videlenia then stroka_poiska:=i;
end;
DBGrid1.SetFocus;
DBGrid1.DataSource.DataSet.MoveBy(s troka_poiska);

однако фокус не устанавливается...визуально пробегается по строкам всего грида, и останавливается на последней....
и записи:
DBGrid1.SetFocus;
DBGrid1.DataSource.DataSet.MoveBy(s troka_poiska);
как буд-то игнорируются...что делать?
funball вне форума Ответить с цитированием
Старый 31.08.2009, 17:30   #6
funball
Пользователь
 
Регистрация: 13.04.2009
Сообщений: 44
По умолчанию

во дела....во ступил....First не указал
все прекрасно работает))
спасибо за помощь!
funball вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Фокус на заданной строке в DBGrid Zver БД в Delphi 6 08.11.2014 12:51
Копирование строки из dbgrid1 в dbgrid2 XFilippowX Общие вопросы Delphi 3 17.02.2009 19:00
DBGrid1 santasss Общие вопросы Delphi 5 27.01.2009 12:00
как переместить курсор DBGrid1 / Table1 1900s БД в Delphi 3 28.05.2008 17:49
вопрос о цвете символа Ceprey Общие вопросы C/C++ 5 01.05.2008 20:53