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