не нашла в нете ответ на свой вопрос. Куча подобных примеров, пишу также, а у меня не работает.
В классе TMySQLFileWaterBodyExporter создаю атрибут типа TextFile. При запуске программы пишет ошибку "Access violation at address 00402E6C in module "project1.exe". Write of address 00000004". Падает имено при обращении к AssignFile.
Когда локально в процедуре объявляю переменную TextFile, все ОК.
Не понимаю, что не так?
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TMySQLFileWaterBodyExporter = class
private
F: TextFile;
public
procedure Prepare();
procedure Close();
end;
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
MySQLFileWaterBodyExporter: TMySQLFileWaterBodyExporter;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TMySQLFileWaterBodyExporter.Prepare();
begin
AssignFile(F, '111.txt');
Rewrite(F);
CloseFile(F);
end;
procedure TMySQLFileWaterBodyExporter.Close();
begin
//CloseFile(ExportFile);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
MySQLFileWaterBodyExporter.Prepare();
MySQLFileWaterBodyExporter.Close();
end;
end.