Jump to content
Fórum Script Brasil
  • 0

[resolvido] Comando Dmpaper


Livio Neiva
 Share

Question

4 answers to this question

Recommended Posts

  • 0
Que componente é esse que está usando ?

o erro é Undeclared identifier: 'DMPAPER'

Identificador não declarado 'DMPAPER'

Deixa eu ver se eu consigo explicar!!!

Eu estou trabalhando com os componentes do Rave Reports!!!

Estou criando um relatório com a linguagem Rave Reports.

Procedimentos que foram executados:

Acesse a guia Rave e insira um componente RvSystem , que será responsável pela exibição do relatório, na tela ou na impressora. Mude o Name para RvSysCliente.

No evento OnBeforePrint do objeto RvSysCliente digite:

With RvSysCliente .BaseReport do

begin

FontName := ’Arial’; //define a fonte como Arial

FontSize := 11;//define o tamanho da fonte para 11

Bold := false; // desabilita o estilo de fonte negrito

SetPaperSize(DMPAPER_A4, 0, 0); //ajusta tamanho do papel

end;

e quando eu compilo.

o erro é Undeclared identifier: 'DMPAPER'

Identificador não declarado 'DMPAPER'

como faço para resolver. por favor se possivel detalhes na explicação ainda sou usuário lego.

Obrigado pela atenção!!!

Edited by Livio Neiva
Link to comment
Share on other sites

  • 0
Guest --Jonas --

Vamos ver se consigo explicar ... primeiro veja se você definiu a clausula uses Printers, caso não tenha definido pode ocorrer esse erro ... caso tenha definido de uma olha no exemplo abaixo:

3.B) Tamanho de Papel

uses Printers; 

  procedure SetPaperSize(PaperSize: Integer); 
  var ADevice, ADriver, APort: array[0..79] of Char; 
      ADeviceMode: THandle; 
      DevMode: PDeviceMode; 
  begin 
    Printer.GetPrinter(ADevice,ADriver,APort,ADeviceMode); 
    if ADeviceMode<>0 then begin 
      DevMode := PDeviceMode(GlobalLock(ADeviceMode)) 
      end 
    else 
      raise Exception.Create('Error initializing printer'); 
    DevMode.dmFields := DevMode.dmFields or DM_PAPERSIZE; 
    DevMode.dmPaperSize := PaperSize; 
    GlobalUnlock(ADeviceMode); 
    Printer.SetPrinter(ADevice,ADriver,APort,ADeviceMode); 
  end;
Você pode achar uma lista de tamanhos de papel disponíveis em Windows API Ajuda (Delphi menu: Help | Windows SDK). Procure DEVMODE no índice de ajuda, então procure DMPAPER_ * * * constantes. Por exemplo, SetPaperSize(DMPAPER_A4) Não esqueça de chamar RVPrint.FormatPages depois de qualquer mudança em tamanhos de papel. Você pode adquirir o tamanho de papel da impressora atual:
function GetPaperSize: Integer; 
var ADevice, ADriver, APort: array[0..79] of Char; 
    ADeviceMode: THandle; 
    DevMode: PDeviceMode; 
begin 
  Printer.GetPrinter(ADevice,ADriver,APort,ADeviceMode); 
  if ADeviceMode<>0 then begin 
    DevMode := PDeviceMode(GlobalLock(ADeviceMode)) 
    end 
  else 
    raise Exception.Create('Error initializing printer'); 
  Result := DevMode.dmPaperSize; 
end;

Você pode ver como uma lista de tamanhos de papel disponíveis e os nomes deles

com o RichViewActions, código fonte (em forma de página de organização )

Caso ainda esta com duvidas veja nestes endereços:

http://www.blpbrasil.com.br/article.aspx?index=10

http://www.trichview.com/forums/viewtopic.php?t=10

Link to comment
Share on other sites

  • 0
Vamos ver se consigo explicar ... primeiro veja se você definiu a clausula uses Printers, caso não tenha definido pode ocorrer esse erro ... caso tenha definido de uma olha no exemplo abaixo:

3.B) Tamanho de Papel

uses Printers; 

  procedure SetPaperSize(PaperSize: Integer); 
  var ADevice, ADriver, APort: array[0..79] of Char; 
      ADeviceMode: THandle; 
      DevMode: PDeviceMode; 
  begin 
    Printer.GetPrinter(ADevice,ADriver,APort,ADeviceMode); 
    if ADeviceMode<>0 then begin 
      DevMode := PDeviceMode(GlobalLock(ADeviceMode)) 
      end 
    else 
      raise Exception.Create('Error initializing printer'); 
    DevMode.dmFields := DevMode.dmFields or DM_PAPERSIZE; 
    DevMode.dmPaperSize := PaperSize; 
    GlobalUnlock(ADeviceMode); 
    Printer.SetPrinter(ADevice,ADriver,APort,ADeviceMode); 
  end;
Você pode achar uma lista de tamanhos de papel disponíveis em Windows API Ajuda (Delphi menu: Help | Windows SDK). Procure DEVMODE no índice de ajuda, então procure DMPAPER_ * * * constantes. Por exemplo, SetPaperSize(DMPAPER_A4) Não esqueça de chamar RVPrint.FormatPages depois de qualquer mudança em tamanhos de papel. Você pode adquirir o tamanho de papel da impressora atual:
function GetPaperSize: Integer; 
var ADevice, ADriver, APort: array[0..79] of Char; 
    ADeviceMode: THandle; 
    DevMode: PDeviceMode; 
begin 
  Printer.GetPrinter(ADevice,ADriver,APort,ADeviceMode); 
  if ADeviceMode<>0 then begin 
    DevMode := PDeviceMode(GlobalLock(ADeviceMode)) 
    end 
  else 
    raise Exception.Create('Error initializing printer'); 
  Result := DevMode.dmPaperSize; 
end;

Você pode ver como uma lista de tamanhos de papel disponíveis e os nomes deles

com o RichViewActions, código fonte (em forma de página de organização )

Caso ainda esta com duvidas veja nestes endereços:

http://www.blpbrasil.com.br/article.aspx?index=10

http://www.trichview.com/forums/viewtopic.php?t=10

ola amigo, problema resolvido, eu tinha feito dessa forma;

SetPaperSize (DMPAPER A4, 0, 0); o correto é ----> SetPaperSize(DMPAPER_A4, 0, 0);

Obrigado pela ajuda.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.1k
    • Total Posts
      647.1k
×
×
  • Create New...