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

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

Перемещение по Таb на нужную колонку в DBGrid [D7, MSSQL]


Grey ©   (2003-01-31 12:41:00) 

Когда перемещаемся по Tab между колонками в DBGrid и доходим до последней колонки или до ReadOnly колонки создаётся новая запись , и в этой новой записи курсор стоит на первой колонке .
Мастера, подскажите пожалуйста ,как сделать, чтобы курсор стоял не на первой колонке, а на определённой колонке (например 3-ей) ?


Grey   (2003-01-31 18:44:00) [1]

>passm ©

Большое спасибо ;-)


MsGuns   (2003-01-31 16:06:00) [2]

>passm © (31.01.03 16:03)
Вырубить TabStop на фиг.


passm   (2003-01-31 16:03:00) [3]

MsGuns © (31.01.03 15:52)> Этого мало. Прочти <Grey (31.01.03 12:41)>


MsGuns   (2003-01-31 15:52:00) [4]

AfterInsert - активизируешь поле, связанное с нужной колонкой.


passm   (2003-01-31 15:31:00) [5]

procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
inherited;
(Sender as TComponent).Tag:= Key
end;

procedure TForm1.DBGrid1ColEnter(Sender: TObject);
begin
inherited;
if ((Sender as TDBGrid).DataSource.State = dsInsert) and ((Sender as TComponent).Tag = TextToShortCut("TAB"))
and ((Sender as TDBGrid).SelectedIndex = 0) then
(Sender as TDBGrid).SelectedIndex:= 2;
(Sender as TDBGrid).DataSource.Tag:= 0;
end;

procedure TForm1.DBGrid1ColExit(Sender: TObject);
begin
inherited;
if ((Sender as TComponent).Tag = TextToShortCut("TAB"))
and ((Sender as TDBGrid).SelectedIndex = (Sender as TDBGrid).Columns.Count - 1) then
(Sender as TDBGrid).DataSource.Tag:= 1
end;

Оптимизируй, если сможешь :)


Grey   (2003-01-31 14:56:00) [6]

Никто не знает что-ли ?
Мастера, отзовитесь, пожалуйста !!!


Grey   (2003-01-31 13:12:00) [7]

Главное, что когда вставляешь запись с помощью стрелки вниз , то курсор на 3-ей колонке, а с помощью Tab - не хочет становится в 3-юю, хотя OnUpdate срабатывает (проверял отладчиком). Видно это в самом DBGrid где-то зашито.
Помогите, Мастера.


Grey   (2003-01-31 13:06:00) [8]

>passm ©
не происходит переход на 3-юю колонку, курсор - на первой

Какие ещё могут быть варианты ?


passm   (2003-01-31 12:53:00) [9]

Grey (31.01.03 12:41)> Может, так:
DBGrid.OnKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
(Sender as TComponent).Tag:= Key
end;

Query.OnNewRecord(DataSet: TDataSet);
begin
if (DBGrid.Tag = TextToShortCut("TAB")) and DBGrid.Focused then
DBGrid.SelectedIndex:= 3
end;


Наверх

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