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