Для работы этой программы не требуется другое обеспечение - в отличие от Делфи, проекты которого обычно требуют BDE для работы с базами данных.
В папке Lazarus\examples есть проект address_book (Адресная книга). Он работает. Здесь рассмотрим создание с нуля упрощенной версии этого проекта. Проект из одной формы, одного модуля. На форме установим: - Dbf1: : TDbf; - компонент для связи с таблицей. - DBGrid1: TDBGrid; - компонент для отображения записей в табличной форме. - DBNavigator1: TDBNavigator; - компонент для управления данными - Datasource1: TDatasource; - компонент для связи DBGrid1 и DBNavigator1 с Dbf1. - OD1: TOpenDialog; - диалог для выбора открываемой таблицы - SD1: TSaveDialog; - диалог для задания имени при сохранении новой таблицы. - MainMenu1: TMainMenu; - меню itTable: TMenuItem; itOpen2: TMenuItem; itNew: TMenuItem; -------- Если хотим увидеть описание класса TDbf, то наводим на него курсор и жмем Ctrl. Как и в Делфи - появляется ладошка, щелкаем мышкой и видим описание класса TDbf (а также весь модуль dbf). Так же можем изучить допустимые типы полей таблицы (щелкаем ftString) и синтаксис метода Add, который добавляет поля в таблицу. Порядок действий (некоторые пункты можно переставлять): 0. Открываю Лазарус, в нем закрываю текущий проект (Файл/Закрыть все файлы редактора) 1. Создаю новый проект - приложение (Application), на форму ставлю вышеупомянутые компоненты, ( Dbf1.Active = false ) 2. Datasource1.DataSet = Dbf1 (выбираю из списка) 3. DBGrid1.Datasource = DataSource1 (выбираю из списка) 4. Компилирую и сохраняю. Во время компиляции лучше ничего не трогать. 5. Добавляю меню (дв щелчок на иконке MainMenu1): прав щелчок - создать подменю, так же вставлять пункты в меню Создаю в подменю пункт Открыть табл. (itOpen: TMenuItem;) Обработчик этого пункта: procedure TForm1.itOpenClick(Sender: TObject); begin if OD1.Execute then begin if Dbf1.Active then Dbf1.Close; Dbf1.TableName:= OD1.FileName; Dbf1.Open; end; end; Теперь можно открывать любую таблицу *.dbf . Она будет показана в окошке DBGrid1, причем заголовками столбцов будут имена полей. Если же программа создается для таблиц только одной структуры, то можно колонки снабдить русскими заголовками. (см. п. 10) 6. Настраиваю якоря (anchors) DBGrid1 - все = true и align = bottom DBNavigator1 - align = top, якоря: bottom=false, остальные - true 7. Добавляю диалог SD1: TSaveDialog - диалог для задания имени при сохранении новой таблицы. 8. Добавляю в подменю пункт itNew: - Создать (новую таблицу). Обработчик беру из проекта address_book: procedure TForm1.CreateTable(AFileName : String); begin With Dbf1 do begin Close; with FieldDefs do begin Clear; Add('FirstName',ftString,10); Add('LastName',ftString,10); Add('Street',ftString,10); Add('Zip',ftString,10); Add('Town',ftString,10); Add('Country',ftString,10); Add('Telephone',ftString,10); Add('Fax',ftString,10); Add('Mobile',ftString,10); Add('Email',ftString,10); Add('WWW',ftString,10); end; TableName:=AFileName; CreateTable; Exclusive := true; Open; AddIndex('LastName', 'LastName', []); end; end; Создавать индекс не обязательно. Он нужен при сортировке и поиске. Эта процедура вызывается при щелчке по пункту меню: procedure TForm1.itNewClick(Sender: TObject); begin if SD1.Execute then CreateTable(SD1.FileName); end; 9. Русифицирую подсказки (hints) навигатора. ShowHints = true для 8,9-й работают нечетко. Некоторые кнопки навигатора лишние, например, редактирование можно начать щелкая клетку, перемещаться по записям - тоже. стрелка вниз заменяет Insert (в нижней записи). 10. Настраиваю колонки (столбцы) DBGrid1 Русифицирую имена столбцов DBGrid1. Доступ к столбцам: Columns. Щелкаю кнопку мастера, однако список пустой. Добавляю 11 пунктов. Далее настраиваю каждый. .Title.Caption - заголовок столбца (русский) .FieldName - имя поля таблицы, с которым связь - выбираю из выпадающего списка (если Dbf1 открыта то этот список есть, иначе - неудобно: имена нужно вписывать). Список полей можно взять из CreateTable: FirstName, LastName, Street, Zip, Town, Country, Telephone, Fax, Mobile, Email, WWW Для столбцов можно также задать: - Ширину - Цвет и т д - см в инспекторе объектов --------- Примечание: Database Desktop из комплекта Делфи7 тоже открывает эту таблицу, но русский текст искажает.