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

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

Отмена Tab в DBGrid на определённую колонку [D7, MSSQL]


Grey ©   (2003-02-24 13:12:00) 

Мастера, подскажите пожалуйста, как в DBGrid отменить действие клавиши Tab на определённую колонку, т.е. как в полях read only , чтобы не заходило в данную колонку, а перескакивало на следующую.


Grey   (2003-02-25 12:22:00) [1]

как унаследовать свойство TabStops в наследнике , чтобы можно было написать Grid.TabStops[6]:=false;
компонента - наследник TCustomGrid


ermserg   (2003-02-24 19:18:00) [2]

Ya imel vvidu sozdash class - naslednik ot TDBGrid.


ermserg   (2003-02-24 19:17:00) [3]

to Grey:
TabStops - protected. Mozhesh poluchit k nemu dostup is svoyey programmi esli sozdash naslednika TDBGrid v svoyom module.


Grey   (2003-02-24 19:02:00) [4]

>Zz_
да, чтото типа этого , только с Tab
да, VK_TAB


Zz_   (2003-02-24 18:58:00) [5]

Что-то типа этого? Не проверял
Не помню как TAB. VK_TAB ???

procedure Tf.gridKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
if(Key=VK_RIGHT)then begin
//Нельзя 2
if(grid.SelectedIndex = 1)then begin
Key := 0;
grid.SelectedIndex := 3;
end;
end else
if(Key=VK_LEFT)then begin
//Нельзя 2
if(grid.SelectedIndex = 3)then begin
Key := 0;
grid.SelectedIndex := 1;
end;


Grey   (2003-02-24 18:53:00) [6]

> Zz_
точно так


Grey   (2003-02-24 18:52:00) [7]

>ermserg ©
TabStops есть в TCustomGrid, а TCustomDBGrid наследуется из TCustomGrid

в OnKeyDown конечно можно написать обработчик нажатия, но неужели нельзя сделать это стандартными средствами ?



Zz_   (2003-02-24 18:52:00) [8]

tab нельзя а мышкой можно. так что-ли ?


Grey   (2003-02-24 18:47:00) [9]

>Соловьев ©
так мне не надо read only
надо чтобы была возможность редактировать колонку, но по tab чтобы в неё не входило


ermserg   (2003-02-24 18:44:00) [10]

to Grey:
Postav flag dgTabs v false (DBGrid.Options), v sobitii OnKeyDown otlavlivay Tab i Alt+Tab i peremeschay focus na kakuyu hochesh column.


Соловьев   (2003-02-24 18:36:00) [11]

:)))
по умолчанию в else вроде


ermserg   (2003-02-24 18:32:00) [12]

to Solovyov: a kogda Grid.ReadOnly = false? :)


ermserg   (2003-02-24 18:30:00) [13]

U TDBGrid net svoystva TabStops.


Соловьев   (2003-02-24 18:27:00) [14]

сделай read only:
if Column.FieldName="NO_EDIT" then Grid.ReadOnly := true
else Grid.ReadOnly := true;


Grey   (2003-02-24 17:41:00) [15]

> Соловьев ©
в том то и дело, что колонку можно редактировать, так бы я просто поставил read only и всё бы работало

надо чтобы по tab не входило в колонку
так что никто не использовал TabStops?


Соловьев   (2003-02-24 16:42:00) [16]

проверь, что елс колонку не надо редактировать, то перейти на следующую. Как? наверное сэмулируй нажатие Tab...


Grey   (2003-02-24 16:27:00) [17]

Тогда может кто-нибудь знает как использовать TabStops ?
а то пишу Grid.TabStops[6]:=false; , а компилятор выдаёт ошибку , что неизвестный идентификатор , хотя в хелпе написано, что можно так делать


Grey   (2003-02-24 15:00:00) [18]

Что , никто не знает , что-ли ?


Наверх

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