Код:
procedure TfmImport.FormCreate(Sender: TObject);
var
LookUpField:TStringField;
begin
FillFieldNames;
try
vtLinks.LoadFromFile('.\ImportProfile.prf');
except
//сообщение об отсутствии файла
end;
LookUpField:=TStringField.Create(vtLinks);
LookUpField.Name:='vtLinksFieldNameLookUp';
LookUpField.FieldKind:=fkLookup;
LookUpField.FieldName:='FieldNameLookUp';
LookUpField.SetFieldType(ftString);
LookUpField.Size:=50;
LookUpField.KeyFields:='InternalFieldIndex';
LookUpField.LookupDataSet:=vtFieldNames;
LookUpField.LookupKeyFields:='ID';
LookUpField.LookupResultField:='Name';
LookUpField.DataSet:=vtLinks;
vtLinks.Fields.Add(LookUpField);
vtLinks.Open;
end;
procedure TfmImport.FormClose(Sender: TObject; var Action: TCloseAction);
begin
SetCurrentDir(ExtractFileDir(Application.ExeName));
vtLinks.SaveToFile('.\ImportProfile.prf');
Action:=caFree;
fmMain.FormControl.CloseFmImport;
end;
procedure TfmImport.btnCloseClick(Sender: TObject);
begin
Close;
end;//Вот тут вылезает ошибка Invalid Pointer Operation
Не могу понять почему вылезает ошибка, подскажите что я делаю не так? проблема в динамически создаваемом LookUp поле, создаёться оно нормально. Создаю его потому-то оно в файл не сохраняется, но при закрытии сабж + EAccessViolation при закрытии главной формы + эта ошибка не даёт правильно удалить дочернюю MDI форму. без этого поля всё ОК
vtLinks - TVirtualTable