Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.57 MB
Время: 0.028 c
3-35137
Kombat
2002-07-21 14:49
2002.08.12
IB и монопольный доступ


3-35148
studentik
2002-07-19 01:36
2002.08.12
Проблема с DBF


14-35443
RV
2002-07-17 11:10
2002.08.12
консольное окно


1-35302
smit_
2002-07-29 16:17
2002.08.12
Создание компонет.


1-35367
nikolo
2002-07-30 12:41
2002.08.12
Как в BDE создать алиас на MS SQL Server 2000?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский