================================================================================
Адаптация Lazarus-пакета "TDBF" к работе с кодовыми страницами 866 и WIN1251
================================================================================
Начиная со Сборки 2024.10.17 в состав <wxLib> включён модуль wxDbf.pas,
позволяющий атаптировать пакет "TDBF" к корректной работе с кириллицей.
Для этого
  -- в ОС Windows достаточно использовать <wxLib> в Ваших приложениях.
  -- в ОС Linux необходимо дополнительно выполнить следующие действия.
================================================================================
Замечания:
1. Приведённые ниже пути справедливы для Lazarus-3.0.0 & FPC-3.2.2
2. Далее в тексте подразумевается, что в Linux
   исходный код проектов находится в папке /MY_LAZARUS_PROJECTS/
При необходимости измените имена папок.
================================================================================
Можно использовать любой из двух описанных ниже способов.
================================================================================

СПОСОБ №1 (простой)
*******************

1. Из папки $(LazarusDir)/fpcsrc/packages/fcl-db/src/dbase/
   скопировать в папку исходных кодов Вашего проекта следующие файлы:
     -- dbf_wnix.inc
     -- dbf_common.inc
     -- dbf_wtil.pas

2. В файле dbf_wnix.inc изменить 3 функции следующим образом:
-------------------------------------------
function GetOEMCP: Cardinal;
begin
(* wxl
{$ifdef HUNGARIAN}
  Result := 852;
{$else}
  Result := $FFFFFFFF;
{$endif}
*)
  Result := 866; // wxl
end;
-------------------------------------------
function GetACP: Cardinal;
begin
(* wxl
{$ifdef HUNGARIAN}
  Result := 1250;
{$else}
  Result := 1252;
{$endif}
*)
  Result := 1251; // wxl
end;
-------------------------------------------
function GetUserDefaultLCID: LCID;
begin
(* wxl
{$WARNING Probably shall be implemented by parsing environment variable LANG}
  Result := LANG_ENGLISH or (SUBLANG_ENGLISH_UK shl 10);
*)
  Result := 1049; // wxl
end;
-------------------------------------------

3. Теперь можете собирать Ваш проект. Всё должно работать нормально.

================================================================================

СПОСОБ №2 (хлопотный)
*********************

1. Lazarus\Пакет\Установить/удалить пакеты:
     Удалить пакет DBFLaz0.1.1

2. Удалить файлы:
     $(LazarusDir)/fpc/units/$(TargetCPU)-$(TargetOS)/fcl-db/dbf*
     $(LazarusDir)/components/tdbf/lib/$(TargetCPU)-$(TargetOS)/$(LCLWidgetType)/*.*

3. В файле $(LazarusDir)/fpcsrc/packages/fcl-db/src/dbase/dbf_wnix.inc
   изменить 3 функции следующим образом:
-------------------------------------------
function GetOEMCP: Cardinal;
begin
(* wxl
{$ifdef HUNGARIAN}
  Result := 852;
{$else}
  Result := $FFFFFFFF;
{$endif}
*)
  Result := 866; // wxl
end;
-------------------------------------------
function GetACP: Cardinal;
begin
(* wxl
{$ifdef HUNGARIAN}
  Result := 1250;
{$else}
  Result := 1252;
{$endif}
*)
  Result := 1251; // wxl
end;
-------------------------------------------
function GetUserDefaultLCID: LCID;
begin
(* wxl
{$WARNING Probably shall be implemented by parsing environment variable LANG}
  Result := LANG_ENGLISH or (SUBLANG_ENGLISH_UK shl 10);
*)
  Result := 1049; // wxl
end;
-------------------------------------------

4. В папку /MY_LAZARUS_PROJECTS/wxl/tdbf_patch_linux
   скопировать следующие файлы:
     $(LazarusDir)/fpcsrc/packages/fcl-db/src/dbase/*.*

5. В Lazarus открыть проект /MY_LAZARUS_PROJECTS/wxl/tdbf_patch_linux/build_tdbf.lpr

6. Скомпилировать проект "build_tdbf.lpr".
   Закрыть Lazarus.

7. Файлы /MY_LAZARUS_PROJECTS/wxl/tdbf_patch_linux/lib/$(TargetCPU)-$(TargetOS)/dbf*
   скопировать в $(LazarusDir)/fpc/units/$(TargetCPU)-$(TargetOS)/fcl-db/

8. Теперь можно удалить в папке /MY_LAZARUS_PROJECTS/wxl/tdbf_patch_linux/
   все файлы кроме
     -- _instruction_tdbf_patch.txt
     -- build_tdbf.lpi
     -- build_tdbf.lpr
     -- build_tdbf.lps

8. Снова открыть проект в Lazarus
     Lazarus\Пакет\Установить/удалить пакеты:
       Установить пакет DBFLaz0.1.1

================================================================================
Теперь Ваши приложения, использующие библиотеку <wxLib> (Сборка 2024.10.17+),
будут корректно создавать и открывать файлы DBF,
в том числе с кодовыми страницами 866, 1251, 65001.
================================================================================
