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

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

Позиция курсора в ячейке 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]

И зачем это понадобилось?


Наверх

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