Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.17;
Скачать: CL | DM;

Вниз

Перемещение по Таb на нужную колонку в DBGrid   Найти похожие ветки 

 
Grey   (2003-01-31 12:41) [0]

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


 
passm ©   (2003-01-31 12:53) [1]

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;


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

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

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


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

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


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

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


 
passm ©   (2003-01-31 15:31) [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;

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


 
MsGuns ©   (2003-01-31 15:52) [6]

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


 
passm ©   (2003-01-31 16:03) [7]

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


 
MsGuns ©   (2003-01-31 16:06) [8]

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


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

>passm ©

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



Страницы: 1 вся ветка

Текущий архив: 2003.02.17;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.018 c
1-53024
b-Ars
2003-02-06 12:28
2003.02.17
Передать объект в DLL


1-52948
_MAD_
2003-02-09 15:47
2003.02.17
TMemo


3-52748
Nikolai_S
2003-01-30 16:17
2003.02.17
Помогите разобраться с форматами дат на SQL-Server е!


1-53050
Альф
2003-02-06 15:20
2003.02.17
Мастера - подскажите о raise ?


1-52880
loginov
2003-02-08 01:31
2003.02.17
перенос слов в мемо