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

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

Добавление записи в DBGrid [D7, XP]


WhiteCat ©   (2007-06-16 16:15:00) 

Здравствуйте.
Подскажите можно ли настроить, чтоб при добавлении записи  в DBGrid (при нажатии на Insert) запись добавлялась после выбранной, а не перед ней


Johnmen   (2007-06-17 14:58:00) [1]


> WhiteCat   (17.06.07 14:53) [14]

Ну не хотите - да и ладно...


WhiteCat   (2007-06-17 14:53:00) [2]

to Johnmen

> Добавление новой строки куда?
Скажите, вы правда мастер в вопросах БД? Попробую по букварю: есть такой компонент TDBGrid, функция которого отображать данные из таблицы (это по поводу[9]). Его реакция на нажатие клавиши "INS" предоставить пользователю интерфейс (пустую строку) для внесения новой записи. Так вот эта пустая строка, появляется над текущей выделенной, а надо (очень надо) чтоб под ней.


Johnmen   (2007-06-17 14:02:00) [3]


>  Поэтому добавление новой строки

Добавление новой строки куда?
И что по поводу [9]?


WhiteCat   (2007-06-17 11:41:00) [4]

to German
 Вы совершенно правы! И вопрос Вы поняли  (не понимаю, почему до johnmen`a не доходит). Но именно, стандартное  поведение DBGrida и не устраивает. Все дело в том что по нажатии клавиши вниз добавление пустой строки у меня заблокировано (на это есть масса причин). Поэтому добавление новой строки (а не записи в таблицу, (пояснение для johnmena)) необходимо осуществлять под текущей. Я готов переписать компонент, но тогда подскажите какой обработчик надо переписывать?


Германн   (2007-06-17 02:17:00) [5]

И в догонку к [10]
Если я правильно понял суть вопроса, то не вижу никакого смысла изменять стандартную реакцию TDBGrid на нажатие клавиши Insert. Поскольку если нужно "вставить внутрь", то надо просто правильно установить курсор перед вставкой. А если нужно "добавить следущую после последней", то нужно вместо клавиши Insert нажать клавишу "Стрелка вниз".

P.S. Пункт 2 из  [10] всё равно более главный!


Германн   (2007-06-17 01:19:00) [6]


> WhiteCat   (16.06.07 20:38) [8]
>
> Скажите, кто-нибудь понимает Johnmen`а?
>

Я. Прекрасно понимаю всё, что он сказал в этой ветке. И абсолютно согласен с ним.
Только, имхо вы оба говорите про разные вещи. Johnmen как Мастер в вопросах баз данных говорит именно о них, а твой вопрос (как я его понял) о поведении компоненты TDBGrid после нажатия на клавиатуре кнопки Insert.
Но пойми:
1. Есть общепринятые стандарты. Insert aka Вставка ВСЕГДАдобавляет новые данные в "позицию курсора"! И не важно о чем речь идёт. О вставке символа в текстовом редакторе или о вставке записи в "редакторе набора данных", коим можно с натяжкой считать TDBGrid.
2. В реальной жизни вставленная запись в большинстве случаев оказывается и не "сверху" и не "снизу" текущей записи, а там, где ей надлежит быть в соответствии со структурой данной таблицы.


Johnmen   (2007-06-16 20:59:00) [7]

Говорю внятно:
1. ДБГрид - это прозрачное окно. Понятно?


WhiteCat   (2007-06-16 20:38:00) [8]

Скажите, кто-нибудь понимает Johnmen`а?

to Johnmen
 Вы можете сказать что-нибудь внятное? Просто по вашим ответам складывается впечатление, что Вы знаете простое решение, и в то же время Германн и Programir утверждают, что это не просто.


Johnmen   (2007-06-16 20:28:00) [9]


>  Еще раз повторяю, речь идет о TDBGrid, а не о TDataSet
> и не о данных, а о редакторе Grida.

Да не надо повторять про телевизор. Если в нём вы видите группу программеров, пьющую пиво, неужели вы думаете, что они сидят в том самом телевизоре? И телевизор их сортирует по количеству выпитого пива?


Германн   (2007-06-16 20:25:00) [10]


> Клиенты просят, чтоб ПУСТАЯ СТРОКА для внесения новой записи
> появлялась не сверху, а снизу под текущей записью.

Скажи клиентам, что это невозможно. А точнее долго и дорого.


WhiteCat   (2007-06-16 20:21:00) [11]

to Johnmen
 Объясните, пожалуйста, что Вы хотели сказать. Еще раз повторяю, речь идет о TDBGrid, а не о TDataSet и не о данных, а о редакторе Grida.

 Клиенты просят, чтоб ПУСТАЯ СТРОКА для внесения новой записи появлялась не сверху, а снизу под текущей записью.

Неужели, это написано в букваре. Подскажите в каком.


Programir   (2007-06-16 20:16:00) [12]

to  Johnmen
 А что здесь смешного, я например тоже не знаю как это сделать без переписывания компонента, так что вопрос вполне нормальный.


Johnmen   (2007-06-16 19:42:00) [13]


> Вы не поняли вопроса.

Не надо смешить. Читайте буквари...:)


WhiteCat   (2007-06-16 18:45:00) [14]

to Desdechado
Вы не поняли вопроса.

Даже не знаю как переформулировать. Опишу что хотелось бы получить:
в DBGrid когда нажимаешь на кнопку Insert появляется пустая строка, для внесения записи,
так вот пустая строка появляется над выдленной записью, а необходимо чтоб под ней.


Desdechado   (2007-06-16 16:32:00) [15]

Запись добавляется не в грид, а в DataSet
Если записи в датасете упорядочены, то некоторые виды датасетов позволяют автоматически позиционировать по индексу свежевведенную запись после Post;


Наверх

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