Ir para conteúdo
  • Cadastre-se

dev botao
  • Este tópico foi criado há 2049 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á 2049 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...
The popup will be closed in 10 segundos...