Я бы использовал общие переменные для всех модулей. Тогда бы один раз загрузил данные в них из файла и пользуйся во всех модулях.
Первый модуль (главная форма):
Код: Выделить всё
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
StdCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
ostatok: TEdit;
schet: TEdit;
code: TEdit;
company: TEdit;
procedure FormCreate(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
vCompany: string;
B: string;
C: string;
D: string;
implementation
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
var F: TextFile;
begin
AssignFile (F, 'config.txt');
Reset(F);
Readln(F, vCompany);
Readln(F, B);
Readln(F, C);
Readln(F, D);
company.Text:=vCompany;
code.Text:=B;
schet.Text:=C;
ostatok.Text:=D;
CloseFile(F);
end;
initialization
{$I unit1.lrs}
end.
Второй модуль (форма вызываемая во время использования программы) (Использую метод OnShow, т.к. vCompany может изменяться во время выпольнения):
Код: Выделить всё
unit Unit2;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
StdCtrls;
type
{ TForm2 }
TForm2 = class(TForm)
company: TEdit;
procedure FormShow(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form2: TForm2;
implementation
uses Unit1;
{ TForm2 }
procedure TForm2.FormShow(Sender: TObject);
begin
company.Text:= unit1.vCompany;
end;
initialization
{$I unit2.lrs}
end.
Хотя в принципе и в Вашем примере ошибок не должно быть.