Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.05.2015, 12:41   #1
S_007
Форумчанин
 
Регистрация: 22.11.2014
Сообщений: 109
По умолчанию Перемещение клавишей таб в DBGridEh

Столкнулся с такой проблемой и не могу победить, если перемещаться клавишей таб по таблице, и когда она доходит до последней нижней ячейке, появляется новая строка, в индикаторе слева появляется звездочка и начинает топтаться по этой строке, не переходит опять на первую строку
Как это победить?
S_007 вне форума Ответить с цитированием
Старый 25.05.2015, 13:21   #2
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
, в индикаторе слева появляется звездочка и начинает топтаться по этой строке,
Потому что DBGridEh переходить в режиме insert на предыдущие тему я вам посоветовал запретит редактирование на DBGridEh и изучать "Insert и Update" делать из отделное форму ... А вы продолжайте своего ...
Редактировать и добавить новый запись через DBGridEh Я думаю что это "снижения производительности " еще там какой СУБД и кагда несколько пользователь делаеть редактирование ! Как там будеть commit ? вы на это думайте ? или вы только на Grid .. допустим одно User делал редактирование и на втором еще старые данных
Изображения
Тип файла: jpg 111.jpg (41.3 Кб, 58 просмотров)

Последний раз редактировалось xxbesoxx; 25.05.2015 в 13:34.
xxbesoxx вне форума Ответить с цитированием
Старый 25.05.2015, 13:45   #3
S_007
Форумчанин
 
Регистрация: 22.11.2014
Сообщений: 109
По умолчанию

xxbesoxx, Спасибо Вам! Но я все равно ничего не понял... У меня есть таблица, если два раза щелкаю по ячейке и начинаю писать то перехожу в режим редактирования, не так ли? Написал что надо и табом начинаю перемещаться по ячейкам до конца таблицы, доходит до последней ячейки нижней строки и не перепрыгивает на начало, а создает новую строку... Я ее Просил? Почему так?
И что Вы имели ввиду по поводу RowSelect?
S_007 вне форума Ответить с цитированием
Старый 25.05.2015, 13:53   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

У грида должно быть свойство AllowedOperations. Попробуй убрать из него alopInsertEh и alopAppendEh
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 25.05.2015, 14:04   #5
S_007
Форумчанин
 
Регистрация: 22.11.2014
Сообщений: 109
По умолчанию

Аватар, Вы гений! Спасибо Вам! Помогло, строку не вставляет, но начинает топтаться теперь по нижней строке и не переходит на первую, что еще не так?
S_007 вне форума Ответить с цитированием
Старый 25.05.2015, 14:21   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
что еще не так?
И не перейдет просто так. Не предусмотрено, ручками нужно заморачиваться в OnColEnter, OnColExit, OnAfterScroll. А стоит оно того?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 25.05.2015 в 14:32.
Аватар вне форума Ответить с цитированием
Старый 25.05.2015, 14:34   #7
S_007
Форумчанин
 
Регистрация: 22.11.2014
Сообщений: 109
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
А стоит оно того?
Просто таблица небольшая, многие привыкли переходить по ячейкам табом, хотелось бы это предусмотреть
А разве по правилам это не обязательно?

Код:
if ord(key) = VK_TAB then
    begin
      dbgridEh5.EditorMode := true;

      pr:=dbgridEh5.DataSource.DataSet.RecNo;
      df:=dbgridEh5.DataSource.DataSet.FieldByName('A7').Index;
      edit1.text:=inttostr(pr);
      edit3.text:=inttostr(df);
     
 if (pr = 15) and (df > 10) then
      begin
        dbgridEh5.DataSource.DataSet.RecNo := 1;
        dbgridEh5.SelectedField:=AdoTable3.FieldByName('A1');
    end
  end;
Пытаюсь таким способом заставить, работает только до предпоследней строчки, а указываю в условии на последнюю, топчется по ней слева направо и и все, на условие не реагирует

15 - это последняя строка в таблице, а 10 - это последняя правая ячейка

Последний раз редактировалось S_007; 25.05.2015 в 14:37.
S_007 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
копирование данных текущей строки DBGridEh В другjq DBGridEh ТипичныйСтудент Помощь студентам 1 06.06.2013 21:19
слежение за нажатой клавишей Prizrak86 C# (си шарп) 1 13.11.2011 00:56
как закрыть правой клавишей мыши pam3ec Помощь студентам 2 22.04.2010 20:30
Проблема с горячей клавишей tirexherou Общие вопросы Delphi 2 23.01.2010 20:42
манипуляция клавишей )Игнат( Общие вопросы Delphi 40 26.04.2008 22:56