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

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

Режим редактирования ячейки DBGrid-a [D7, 95/98, XP]


abhtr ©   (2008-10-31 10:59:00) 

При заполнении ячеек DBGrid-a делаю автоматический переход на следующую колонку по нажатию Enter.
dbgPrHsPrice.SelectedIndex := dbgPrHsPrice.SelectedIndex + 1;
Когда происходит переход, то новая ячейка сразу же переходит в режим, когда синим цветом выделяется не ячейка целиком, а выделяется число в этой ячейке.
Не могу определить как эти режимы называются и как можно ими управлять программно.
Т.е. как сделать, чтобы при переходе в новую ячейку включался режим, когда выделяется вся ячейка, а не число в ней.


Johnmen   (2008-11-01 11:33:00) [1]

Думается, было бы достаточно в опциях выставить dgAlwaysShowEditor.


abhtr   (2008-11-01 11:23:00) [2]

Всем спасибо.
Остановился на следующем:

 //Имитация нажатия и
 PostMessage(dbgPrHsPrice.Handle, WM_KEYDOWN, VK_RETURN, 0);
 //Имитация отпускания клавиши Enter
 PostMessage(dbgPrHsPrice.Handle, WM_KEYUP, VK_RETURN, 0);


Leonid Troyanovsky   (2008-10-31 16:55:00) [3]


> abhtr   (31.10.08 10:59)  

> Не могу определить как эти режимы называются и как можно
> ими управлять программно.

PostMessage(DBGrid1.Handle, WM_KEYDOWN, vk_f2, 0);
SendMessage(DBGrid1.Handle, WM_KEYUP, vk_f2, 0);

Ну, или vk_return, кажись.

--
Regards, LVT.


clickmaker   (2008-10-31 16:50:00) [4]

> как эти режимы называются

dgAlwaysShowEditor ?


abhtr   (2008-10-31 16:35:00) [5]

Просто мне надо перевести ячейку из режима 1 в режим 2 программно. И все. Извините, если кого это обидело своей наивностью.


MsGuns   (2008-10-31 16:05:00) [6]

Опции грида ?
У меня телепатор в аренде


Johnmen   (2008-10-31 16:03:00) [7]


> MsGuns ©   (31.10.08 11:10) [1]
> MsGuns ©   (31.10.08 16:00) [6]
> Если Вам так уж необходимо вручную управлять цветом и фонтом в ячейке, то надо осилить и то, и другое.

Ему не нужно ни то, ни другое. Читаем внимательно вопрос...


MsGuns   (2008-10-31 16:00:00) [8]

>abhtr   (31.10.08 11:27) [2]
>Но поясните, хотя бы то, как называются эти два режима:

>режим 1 - это когда выделяется все число в ячейке,

 грид показывает не ячейку, а InplaceEditor, который умеет самостоятельно принимать сигналы от клавиатуры (мыши) и рисовать на своей канве. Выделение управляется им же св-вами SelStart,SelWidth (насколько помню)

и

>режим 2 - это когда выделена вся ячейка целиком.

грид собственно сам рисует в ячейке - для коррекции его действий и служит упомянутое событие

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


Германн   (2008-10-31 15:10:00) [9]


> ASoft   (31.10.08 12:51) [4]
>
>
> > abhtr   (31.10.08 10:59)
> >
> > При заполнении ячеек DBGrid-a делаю автоматический переход
> > на следующую колонку по нажатию Enter.
>
> Если разрешает ТЗ, имхо, сделать редактирование лучше в
> редакторе, нежели в таблице непосредственно
>

Опять холивар?


ASoft   (2008-10-31 12:51:00) [10]


> abhtr   (31.10.08 10:59)
>
> При заполнении ячеек DBGrid-a делаю автоматический переход
> на следующую колонку по нажатию Enter.

Если разрешает ТЗ, имхо, сделать редактирование лучше в редакторе, нежели в таблице непосредственно


Правильный$Вася   (2008-10-31 12:19:00) [11]


> Когда происходит переход, то новая ячейка сразу же переходит
> в режим, когда синим цветом выделяется не ячейка целиком,
>  а выделяется число в этой ячейке.

это нормально, ты же в режиме редактирования


abhtr   (2008-10-31 11:27:00) [12]

Я не против
> Рисовать ручками

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


MsGuns   (2008-10-31 11:10:00) [13]

Рисовать ручками как нужно в событии TDBGrid.OnDrawColumnCell


Наверх

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