![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Позиция курсора в ячейке DBGrid [D6, XP]
TComponent © (2009-12-24 21:35:00)Как программно определить позицию курсора в ячейке DBGrid?
MonoLife (2009-12-25 05:35:00) [1]
> Лучше научите, как запретить DBGrid-у вставлять в редактируемую
> ячейку ненужный символ при нажатии Ctrl+BackSpace
DBGrid.readonly=true
Игорь Шевченко (2009-12-25 02:37:00) [2]
> Так для этого надо сперва научить TEdit. В нем, а также
> TDBEdit тоже наблюдается это явление.
А что его учить - переписать оконную процедуру, отлавливать WM_CHAR
Amoeba (2009-12-25 01:59:00) [3]
> Лучше научите, как запретить DBGrid-у вставлять в редактируемую
> ячейку ненужный символ при нажатии Ctrl+BackSpace
Может лучше просто отлавливать его в соответствующем событии формы и там гнобить если фокус на таких компонентах?
Германн (2009-12-25 01:48:00) [4]
> Лучше научите, как запретить DBGrid-у вставлять в редактируемую
> ячейку ненужный символ при нажатии Ctrl+BackSpace
А смысл? В следующий раз ты спросишь про иную комбинацию клавиш.
Amoeba (2009-12-25 01:40:00) [5]Так для этого надо сперва научить TEdit. В нем, а также TDBEdit тоже наблюдается это явление.
TComponent (2009-12-25 01:27:00) [6]
> Игорь Шевченко © (25.12.09 00:31) [10]
>
> TComponent © (24.12.09 22:51) [7]
>
> Матчасть учить не ?
Лучше научите, как запретить DBGrid-у вставлять в редактируемую ячейку ненужный символ при нажатии Ctrl+BackSpace (Это сочетание я использую, чтобы удалить слово перед курсором). Нажатие этого сочетания приводит к появлению в ячейке символа, похожего на жирную вертикальную палку. Можно ли сделать так, чтобы этот ненужный символ не появлялся?
Игорь Шевченко (2009-12-25 00:31:00) [7]TComponent © (24.12.09 22:51) [7]
Матчасть учить не ?
Amoeba (2009-12-24 22:57:00) [8]
> InplaceEditor - это тоже сетка?
Нет, это потомок TCustomMaskEdit, появляющийся в выбранной ячейке при переходе в режим редактирования.
Омлет (2009-12-24 22:54:00) [9]> [7] TComponent © (24.12.09 22:51)
Result - это переменная типа Integer.
InplaceEditor - это редактор текста, который создается в ячейке при её редактировании.
Смотри [6] и делай по аналогии.
TComponent (2009-12-24 22:51:00) [10]
> Омлет © (24.12.09 22:23) [3]
>
> Как вариант проверить
> SendMessage(Handle, EM_GETSEL, Longint(@Result), 0);
Что подразумевается под идентификатором "Result"?
[Error]: Undeclared identifier: 'Result'
> Игорь Шевченко © (24.12.09 22:31) [5]
>
> TComponent © (24.12.09 22:28) [4]
>
> У DBGrid-а вообще ничего не существует. Существует у InplaceEditor-
> а в режиме редактирования
InplaceEditor - это тоже сетка? Если - сетка, то насколько она совместима по своим свойствам, методам и событиям с DBGrid (если в проекте заменить DBGrid на InplaceEditor)? Знаете?
Омлет (2009-12-24 22:40:00) [11]Например, для StringGrid сработал такой фокус:
TMyStringGrid = class (TStringGrid)
public
property InplaceEditor;
end;
...
CurPos := TMyStringGrid(StringGrid1).InplaceEditor.SelStart;
Игорь Шевченко (2009-12-24 22:31:00) [12]TComponent © (24.12.09 22:28) [4]
У DBGrid-а вообще ничего не существует. Существует у InplaceEditor-а в режиме редактирования
TComponent (2009-12-24 22:28:00) [13]
> И зачем это понадобилось?
Ну, например, чтобы можно было программно удалить не один символ до или после курсора, а целое слово.
Может быть для DBGrid существуют соответствующие сочетания клавиш, которые выполняют эту функцию?
Омлет (2009-12-24 22:23:00) [14]Как вариант проверить
SendMessage(Handle, EM_GETSEL, Longint(@Result), 0);
Игорь Шевченко (2009-12-24 22:15:00) [15]начинать от MouseToCell и арифметикой
Amoeba (2009-12-24 22:01:00) [16]И зачем это понадобилось?