![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Функция Ditto в Delphi [D6, Paradox]
MsGuns © (2002-07-22 11:01:00)При переводе старых прог в Delphi столкнулся с такой проблемой:
В старых прогах при редактировании-добавлении в таблицы работает станд.функия Ditto (Ctrl+D), по которой в тек.поле записи прописывается значение этого же поля предыдущей (верхней) записи. Юзера настолько привыкли к этому, что требуют того же в новых прогах. А вот тут-то и проблема: При редактировании я просто "прыгаю" вверх и, "забрав" поле в переменную Variant, возвращаюсь назад и вписываю его в редактируемую запись (ключи я редактировать не даю), а при вставке приходится в обработчике BeforInsert запоминать все поля в памяти (для этого я исп-ю массив), откуда потом по кнопке и прописываю значения в добавляемую запись. Но при этом есть существ.минусы:
При редактировании кнопка Cancel отменяет только те изменения, которые были сделаны после последнего "прыжка", т.е. восстанавливается только 2-3 поля вместо всех;
Морока с сохранением полей ВСЕЙ записи при каждом Insert/Append
Может быть, кто-то подскажет более красивый способ решения этой проблемки ?
MsGuns (2002-07-22 15:22:00) [1]Ну рок-музон это же не делфа, а нечто совсем другое..)))
Lord Warlock (2002-07-22 15:19:00) [2]
> (ни звука модератору !)
что рассердится? по причине...??
MsGuns (2002-07-22 15:12:00) [3]> (Кстати, ты случаем, не поклонник Doro ?)
это чего??
Просто WarLock - имя рок-группы, с которой дебютировала известная рок-дева Doro (что-то около 1986-87гг). Но это так, к слову (ни звука модератору !)
Lord Warlock (2002-07-22 14:57:00) [4]
> (Кстати, ты случаем, не поклонник Doro ?)
это чего??
> Так я так и делаю !!!
правильно делаешь, лучше не получится
MsGuns (2002-07-22 14:52:00) [5]>Lord WarLock
>Попробуй на OnScroll оставить сохранение нужных полей в переменных или массиве, а потом на эту ф-цию просто подпихивать оттуды значения
Так я так и делаю !!!
Вопрос был можно ли все это как-то кучнее и круче ?
(Кстати, ты случаем, не поклонник Doro ?)
Lord Warlock (2002-07-22 14:45:00) [6]
> MsGuns © (22.07.02 14:40)
Попробуй на OnScroll оставить сохранение нужных полей в переменных или массиве, а потом на эту ф-цию просто подпихивать оттуды значения
MsGuns (2002-07-22 14:40:00) [7]>Viewer
Наверное, я не достаточно прозрачно задал вопрос..((
Редактируются ВСЕ поля, но фишка "Ditto" просто "сносит" значение этой же колонки из ПРЕДЫДУЩЕЙ записи в ТЕКУЩУЮ.
>Не DBAware поля в которые так или иначе заноситься текущая запись.
В чем разница между между этим способом и просто массивом Variant. Просто куча каких-то левых (юзеру их на фиг не надо показывать) компонент, которых к тому же неясно сколько (таблов в проекте может быть 2-3 десятка и все с разными структурами)
> нажав Save - добавить запись.
а это тут причем, если я по-любому ОБРАБАТЫВАЮ BeforePost ?
Viewer (2002-07-22 11:26:00) [8]Не DBAware поля в которые так или иначе заноситься текущая запись. Нажав Append юзер переходит в режим редактирования значений только нужных полей, нажав Save - добавить запись.