Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.08.12;
Скачать: CL | DM;

Вниз

Функция 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.013 c
4-35500
Max2000
2002-06-04 12:48
2002.08.12
Как как на API открывать и закрывать доступ к диску или папке.


1-35284
Demona
2002-07-30 21:18
2002.08.12
как читать и редактировать файл в Юникодах?


14-35434
lak_b
2002-07-17 13:42
2002.08.12
Комп буйствует


1-35312
Filat
2002-07-26 20:16
2002.08.12
Есть *.zip, как узнать, что у него внутри?


3-35171
Allig
2002-07-23 09:08
2002.08.12
Маска