clopez
asked on
Restoring clipping region
I have a problem with the TPrinter object canvas and the clipping region.
I can not find the way to restore a clipping region after I set it up to something else. I don't want to set it to a previus value, but to the original value.
In the TPrinter the printing area is set to the full page at start, but for my procedures I clip the region so they don't print outside what is settled. The problem is that I'm not able to restore the clipping area when I finish.
What I do is exlude any already printing area for what is already printed, so next procedures don't overlay over previous areas.
My actual solution is to store the cliping area the first time I print, and that work ok if you don't change the paper size.
TIA
I can not find the way to restore a clipping region after I set it up to something else. I don't want to set it to a previus value, but to the original value.
In the TPrinter the printing area is set to the full page at start, but for my procedures I clip the region so they don't print outside what is settled. The problem is that I'm not able to restore the clipping area when I finish.
What I do is exlude any already printing area for what is already printed, so next procedures don't overlay over previous areas.
My actual solution is to store the cliping area the first time I print, and that work ok if you don't change the paper size.
TIA
ASKER CERTIFIED SOLUTION
membership
Create a free account to see this answer
Signing up is free and takes 30 seconds. No credit card required.
ASKER
What TheNeil says is what I am actually doing. But I was looking for some thing like <b>RestoreClipArea</b>. Any way find really interesting what Lischke states.
Well, so try it out! It works very fine :-)
Ciao, Mike
Ciao, Mike
My idea stemmed from Delphi while Mike's is more API. All I can say is, I had trouble assigning a clipping region to the printer using my approach, so give Mike's idea a go (it's bound to be right)
The Neil =;)
The Neil =;)
i.e.
VAR
OldClip : TRect;
BEGIN
...
OldClip := Printer.Canvas.ClipRect;
...
Printer.Canvas.ClipRect := OldClip
...
END;
The Neil