GARANTIR DESCONTO

Fórum Alternativa alterar unit original #346676

25/09/2007

0

Algum tempo atráz precisei incluir as 2 linhas abaixo nas procedures BeginDoc e NewPage da unit original Printers, nunca tinha dado problema, porém agora começou dar conflito (was compiled version different) com um novo componente que instalei.

Tem alternativa ao invés de mexer na unit original do Delphi, porque estas linhas pra funcionar tem que estar antes da linha StartPage(DC). Pensei em criar uma unit nova descendente de Printers só com BeginDoc, NewPage pra sobrepor os originais, mas não sei como fazer isto.

DevMode.dmDefaultSource:=FNumBand; // <-- muda bandeja impressão
Windows.ResetDC(DC,DevMode^); // <-- aplica alteração


procedure TPrinter.BeginDoc;
var
DocInfo: TDocInfo;
begin
CheckPrinting(False);
SetState(psHandleDC);
Canvas.Refresh;
TPrinterCanvas(Canvas).UpdateFont;
FPrinting := True;
FAborted := False;
FPageNumber := 1;
FillChar(DocInfo, SizeOf(DocInfo), 0);
with DocInfo do
begin
cbSize := SizeOf(DocInfo);
lpszDocName := PChar(Title);
end;
SetAbortProc(DC, AbortProc);
StartDoc(DC, DocInfo);

DevMode.dmDefaultSource:=FNumBand; // <-- muda bandeja impressão
Windows.ResetDC(DC,DevMode^); // <-- aplica alteração

StartPage(DC);
end;


procedure TPrinter.NewPage;
begin
CheckPrinting(True);
EndPage(DC);

DevMode.dmDefaultSource:=FNumBand; //<-- muda bandeja impressão
Windows.ResetDC(DC,DevMode^); //<-- aplica alteração

StartPage(DC);
Inc(FPageNumber);
Canvas.Refresh;
end;


Obrigado,


Edurocha

Edurocha

Responder

Posts

26/09/2007

Weber

Copie a Unit original do Delphi para a pasta do seu projeto, então faça as alterações na cópia da unit dentro da pasta do seu projeto.
Quando você compilar o Delphi vai assumir esta cópia da unit.


Responder

Gostei + 0

26/09/2007

Edurocha

Valeu Weber já deu uma luz... fiz isto só que quando compilo o conflito continua, pois neste mesmo projeto utilizo os componentes novos que gera o erro was compiled version different.

O que mais poderia fazer ? Tem alguma forma de compilar o form que usa o componente novo utilizar a unit original do Delphi e o restante do meu projeto utilizar a unit alterada ?

Obrigado,


Responder

Gostei + 0

26/09/2007

Paulo Samurai

Seria ruim criar um descendente da TPrinter e usar o descendente? Daí voce trabalharia com o TNewPrinter onde for necessário e deixaria a TPrinter do jeito que está ;)

[]´s


Responder

Gostei + 0

26/09/2007

Edurocha

ótima idéia, porém não sei como faze-lo, alguem poderia dar uma ajuda ? por onde começar.


Responder

Gostei + 0

26/09/2007

Martins

ótima idéia, porém não sei como faze-lo, alguem poderia dar uma ajuda ? por onde começar.


E se você mudasse o nome da unit q vc copiou para a pasta do seu projeto, deixando a original do Delphi como era antes das modificações, não resolveria?


Responder

Gostei + 0

26/09/2007

Edurocha

Valeu Martins, funcionou tudo certinho, mudei somente o nome da unit é isto mesmo né ? não preciso mexer em mais nada no corpo da unit ?


Responder

Gostei + 0

27/09/2007

Martins

Valeu Martins, funcionou tudo certinho, mudei somente o nome da unit é isto mesmo né ? não preciso mexer em mais nada no corpo da unit ?


Teoricamente isso deveria resolver seu problema e o Delphi continuaria funcionando perfeitamente, qualquer problema, retorne e nos informe sobre o erro q tentaremos juntos encontrar uma solução.

Bons códigos!


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar