Внесение изменений в файл в Delphi (DBNavigator)
До сих пор мы ограничились просмотром уже существующих файлов. Не менее важным является и внесение изменений в файлы. Обычно различают три вида изменений:
• добавление новых записей;
• изменение записей;
• удаление записей.
Все перечисленные изменения могут быть выполнены через Database Desktop. Для этого надо войти в него, открыть обновляемый файл, перейти в режим редактирования и внести необходимые изменения. Так целесообразно поступить при большом количестве изменений. Не забудьте, что один и тот же файл не может быть одновременно открыт из Delphi и из Database Desktop.
Рис. 1. DBNavigator
Изменения могут быть внесены и во время работы приложения. Лучше всего это делать с помощью DBNavigator как для таблиц, так и для форм. В приведенных примерах были использованы только четыре его кнопки для передвижения по файлу. Полностью DBNavigator представлен на рис. 1.
Первые четыре из кнопок уже знакомы, они обеспечивают передвижение по файлу. При работе с таблицами они не особенно нужны (но и не запрещены), потому что передвижение обеспечивается и полосами скроллинга.
При работе с формами, как было показано раньше, без них не обойтись. Назначение кнопок:
1. First – начало файла;
2. Previous – на одну запись назад;
3. Next – на одну запись вперед;
4. Last – конец файла;
5. Add – добавление новой записи перед текущей;
6. Delete – удаление текущей записи;
7. Edit – переход в режим редактирования;
8. Post – записывать внесенные изменения в файл;
9. Cancel – отменить внесенные изменения;
10. Refresh – приводить весь файл в соответствие с определенными изменениями.
Возможности изменения данных в файлах должны быть предусмотрены уже на стадии проектирования приложения. Управлять этим можно следующими свойствами:
• ReadOnly y Table, если этому свойству присвоить значение True, то изменения во время выполнения приложения невозможны;
• AutoEdit y DataSource, если этому свойству присвоить значение False, то редактирование запрещено, но во время выполнения приложения можно переходить в режим редактирования;
• ReadOnly y DBEdit, если этому свойству присвоить значение True, то редактирование во время выполнения этого поля невозможно.
Очевидно, что свойства объектов Table и DataSource относятся ко всем полям. После этих уточнений рассмотрим назначения клавиш. Клавиша 7 переводит таблицу или форму в режим редактирования, после чего можно внести изменения, т.е. по сути свойство AutoEdit y DataSource получит значение True. После этого можно внести изменения в любое поле. Но эти изменения не сразу будут перенесены в файл. Если Вы убедились в правильности изменений, то нажатием клавиши 8 они будут перенесены; клавиша 9 отменяет их. Клавиша 10 вызывает обновление всего файла с учетом внесенных изменений. Например, если в результате внесенных изменений записи должны быть переупорядочены, то после нажатия клавиши 10 они появятся на экране в новой очередности.