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