Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.02.17;
Скачать: [xml.tar.bz2];

Вниз

Перемещение по Та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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
1-52987
Aleksandr
2003-02-10 12:38
2003.02.17
Баг в коде DBGrids?


1-52923
Barman
2003-02-06 06:42
2003.02.17
Excel


3-52709
OpoloXAI
2003-02-01 10:37
2003.02.17
open DataBase and Password


1-53039
SniZ
2003-02-09 20:56
2003.02.17
И еще по строкам!


6-53144
lefan
2002-12-26 08:10
2003.02.17
If-Modified-Since





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский