Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 1785 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Boa tarde,

Após ter feito a atualização do Fortes Report hoje "08/01/2020" o mesmo não está sendo instalado no Delphi 7, pois foi feito uma alteração no Fortes Report em Dezembro de 2019 e acredito que está alteração não comportou bem para Delphi 7.

image.thumb.png.fab2645d623c057c5218fd143d879841.png

veja que o erro da instalação está se referindo ao arquivo RLPrinters.pas que se encontra na pasta "Source" do "Fortes Report" :

image.thumb.png.efb5d9fa4566bd112ad4ac3baaebccb3.png

image.png.a05bfbe7224d499d6232900f93151ab9.png

O erro está indicando o arquivo RLPrinters.pas na linha (969), conforme abaixo:

Se eu comentar essas linhas, dai instala normalmente o "Fortes Report".

procedure TRLPrinterWrapper.CreateDeviceMode(WindowHandle: HWND);
var
  Device, Driver, Port: array[0..MAX_PATH] of char;
  PrinterHandle: THandle;
  OldModeHandle: THandle; //hDeviceMode
  OldDeviceMode: PDeviceMode; //PrinterDevMode
  NewModeHandle: THandle;
  NewDeviceMode: PDeviceMode;
  BytesNeeded: Integer;
begin
  Printer.GetPrinter(Device, Driver, Port, OldModeHandle);
  if WinSpool.OpenPrinter(@Device, PrinterHandle, nil) then
  try
    OldDeviceMode := GlobalLock(OldModeHandle);
    try
      BytesNeeded := WinSpool.DocumentProperties(WindowHandle, PrinterHandle, Device, nil, nil, 0);
      if BytesNeeded < 0 then
        raise Exception.Create('The call to DocumentProperties failed.');
      NewModeHandle := GlobalAlloc(GHND, BytesNeeded);
      NewDeviceMode := GlobalLock(NewModeHandle);
      try
        case WinSpool.DocumentProperties(WindowHandle, PrinterHandle, Device, NewDeviceMode^, OldDeviceMode^, DM_OUT_BUFFER or DM_IN_PROMPT or DM_IN_BUFFER) of
          IDOK: begin
            Printer.SetPrinter(Device, Driver, Port, NewModeHandle);
            ClearSavedDevMode;
            SavedPrinterSettings.DevMode := GetMemory(BytesNeeded);
            SavedPrinterSettings.Bytes := BytesNeeded;
            SavedPrinterSettings.PrinterName := Printer.Printers[Printer.PrinterIndex];
            CopyMemory(SavedPrinterSettings.DevMode, NewDeviceMode, BytesNeeded);
          end;
          IDCANCEL: // do nothing
          else raise Exception.Create('Something went wrong with setting the new printer parameters.');
        end;
      finally
        GlobalUnlock(NewModeHandle);
      end;
    finally
      GlobalUnlock(OldModeHandle);
    end;
  finally
    WinSpool.ClosePrinter(PrinterHandle);
  end;
end;

  • Este tópico foi criado há 1785 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...