![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Режим редактирования ячейки 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