Invalid Pointer Operation

отредактировано 22:34 Раздел: FastReport VCL
Добрый день!
Fast Report 6
Delphi Tokyo 10.2

Fast Report компонент находится на фрейме. Фрейм подгружается динамически в процессе работы программы.
Ошибка Invalid Pointer Operation вываливается в случае повторной отправки на печать на строке
frxRep.FileName:=ExtractFilePath(paramstr(0))+'Rof.fr3';

Код
procedure TframViewDefects.btnPrintClick(Sender: TObject);
var
  c,r:Integer;
  m:TfrxMemoView;

  function TryToFindfrxMemo(const AName:string):Boolean;
  begin
    m:=(frxRep.FindObject(AName) as TfrxMemoView);
    Result:=m<>nil;
  end;
begin
  try

    if not FileExists(ExtractFilePath(paramstr(0))+'Rof.fr3') then
      begin
        PostToLog('No FastReport file Rof.fr3. No printing available.');
        Exit;
      end;

    frxRep.FileName:=ExtractFilePath(paramstr(0))+'Rof.fr3';
    frxRep.LoadFromFile(frxRep.FileName);

    if TryToFindfrxMemo('mDateValue') then
      m.Memo.Text:=FormatDateTime('dd.mm.yyyy',dtpDate.Date);
    if TryToFindfrxMemo('mTimeValue') then
      m.Memo.Text:=FormatDateTime('hh:nn:ss',dtpTime.Time);

    frxRep.PrepareReport;
    frxRep.PrintOptions.Printer:='Default';
    frxRep.PrintOptions.ShowDialog:=False;    
    frxRep.Print;
  finally
    FreeAndNil(m);
  end;

end;

Комментарии

  • отредактировано 22:34
    Kast2K написал: »
    на строке
    frxRep.FileName:=ExtractFilePath(paramstr(0))+'Rof.fr3';
    
    Если к данной строке идёт обращение только 1 раз при загрузке фрейма\формы, то ошибки нет.
    Если пробовать открыть иной файл через Open Dialog, то ошибка появляется.

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.