Функция GetTableMemo |
Возвращает хендл для работы с мемо-полем. Предназначена для вызова в обработчике триггера.
function GetTableMemo: longInt;
Хендл на мемо-поле.
Функция не выбрасывает исключений.
#include recAaa1.inc handler with replace c_aaa1 on trigger aaa1 convert action { var old_buf: record as table aaa1; // буфер старой таблицы var new_buf: recAAA1; // буфер новой таблицы, берем из include-файла var f,ff: longint; var s,n: string; GetTableBuffer(old_buf); // считываем старый буфер new_buf := recAAA1(old_buf); // копируем не изменившиеся поля new_buf.x := '['+string(old_buf.w)+']'; // и модифицированное поле f := OpenFileHandle(GetTableMemo); // открываем поток с мемо-полем ff := CreateFileHandle('xxx'); // создаем хендл с именем ххх n := CreateTmpFileName; file_openFile(n, stCreate, ff); // открываем файл для нового мемо-поля file_readln(s, f); // читеам старое s := '['+s+']'; // как-то обрабатываем file_writeln(s, ff); // записываем в файл SetTableMemo(GetMemoHandleFF(ff)); // сохраняем изменения как мемо-поле // реальное копирование мемо-поля из файла происходит в этой функции // поэтому закрывать хендлы нужно после нее ModifyTableRecord(new_buf); DeleteFileHandle(f); // закрываем хендл DeleteFileHandle(ff); // закрываем хендл result := true; }
Атлантис 5.0.02.