Форум: "Базы";
Текущий архив: 2002.08.22;
Скачать: [xml.tar.bz2];
ВнизКопирование Найти похожие ветки
← →
vib (2002-07-31 22:10) [0]Подскажите как скопировать значение поля в DBGrid которое находиться
выше текущего. Тоисть находясь в каком-то поле DBGrid я хочу скопировать
в него значение того-же поля но предыдущей записи (Ctrl D - в PARADOX).
В общем проблема сводится к чтению значения поля не устанавливая в эту
строку указателя. Заранее благодарен, Володя.
vib@softhome.net
Jeer © (28.07.02 16:43) Не создавай себе проблем.
DisableControls; Prior; читаем ; Next; присваиваем; Post; EnableControls;
Да но если я стою в пустой строке (копирую первое поле) то при уходе с этой строки она исчезнет (а копирование произойдет не туда куда надо), дальше если я заполнил индексное поле а потом таким образом копирую следующее произойдет сортировка (опять копируем не туда ), или если есть поля обязательные для заполнения?
← →
Jeer (2002-07-31 22:51) [1]Ок. Будем последовательны и идем дальше.
1.Что значит пустая строка.
2.Куда она исчезнет.
Думаю эти проблемы связаны с недопониманием статуса TDataSet:
вставка, редактирование..Разумеется, находясь в этих режимах двигать курсор уже нельзя.
3.Если Вы заполнили индексное поле но не сделали Post никакой сортировки и не произойдет.
4.Если есть обязательные поля - заполняйте.
Лучше всего конечно переопределить OnNewRecord в наследнике от TTable
Что-то вроде
procedure TMy.DoOnNewRecord;
var
RecBuf: PChar;
begin
if FCopyOnAppend then
begin
UpdateCursorPos;
if GetActiveRecBuf(RecBuf) then
FHandle.CloneCurrentRecord(RecBuf);
end;
inherited DoOnNewRecord;
end;
Если такими вещами тяжело заниматься, то можно задействовать события OnBeforeScroll и копировать текущую запись в буфер, а на OnNewRecord заполнять из него.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.08.22;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.01 c