|
Hi
I have a problem with changing printer's paper size to custom paper size(programmatically).
I use PaperSize cunstuctor to create custom paper size and then assign it to PrintDocument.DefaultPageSettings.PaperSize.
this is not change paper size in printer.
Dim pd As PrintDocument = New PrintDocument<br />
Dim pkCustomSize1 As New PaperSize("Custom", 100, 200)<br />
pd.DefaultPageSettings.PaperSize = pkCustomSize1
Please Guide me
Thnaks
|
|
|
|
|
Does the printer support setting custom paper size? Not all do....
(Can't see anything wrong with the code itself)
|
|
|
|
|
Thanks for your reply.My printer support custom paper size.it's model is
**HP LaserJet 1020**
but when i programmatically change the printer paper size it dose not affect on printer's paper size.
thanks for your guide.
|
|
|
|
|
this won't change the printer's pagesize to 100x200 but you will get your printout in the papersize you specified (for that session only).
Vilsad P P
MCTS (Windows Applications) .Net 2.0
|
|
|
|
|
Hi Vilsad
then i must positioning my text and other objects in page to print correctly?
plese guide me with code snipet
thanks
|
|
|
|
|
yes you must position your text to the newly set papersize. and it will print correctly
initialise your variables in beginprint event because this will be called first when you call printdocument.print method. set a variable to calculate the current height and check it with the pagesettings.printablearea.height and the current printing hight should not exeed this printarea height. if you have more to print then set the hasmorepages = true or when you need to finish set it to false.
the printpage event is repeatedly called when you set hasmorepages = true
Note: Track your current printing position and it should not exeed the paper's limit, if the limit crossed then you will get a infinite number of pages printed.
Vilsad P P
MCTS (Windows Applications) .Net 2.0 Never bring a sword to a gun fight
|
|
|
|
|
Hi
1) Someone told me a function should have only one exit point - why is this?
2) Is it bad practice to use the input to the function directly. In example below, I compare intInput to a constant (10). Should I first equate intInput to a local variable and then use a local variable in the comparison. Just seems like extra code to use anothe variable?
3) As opposed to using 'Return True' or 'Return False' is it better to
use the function name - E.g. 'Test = False'
Private Function Test(byVal intInput as Integer) as Boolean
If intInput >10 then
Return True
Else
Return False
End If
End Function
-- modified at 5:15 Saturday 5th May, 2007
|
|
|
|
|
friend..
Answer to question 1 : i'm not sure of it.
Answer to question 2 : its a good practise, if u use a temporary variable
inside functions. this keeps the original value safe and secure. dont hesitate to write some more code for this, bcoz its usefull when it comes to large programs..
Answer to question 3 : there are no difference between these two, but it is good to use 'Test = False', becoz thats the correct syntax while writing a function. still it is not mandatory. the code will work...
|
|
|
|
|
Thanks
|
|
|
|
|
RichardBerry wrote: 1) Someone told me a function should have only one exit point - why is this?
It is an ideal but I think most developers are not religious about it. The main reason is maintainability, especially with longer, more elaborate functions. OTOH, in OO code, and in procedural code for that matter, functions should not be too long.
For the example you supply it doesn't matter much. Though it is more concise to write
Return intInput > 10
RichardBerry wrote: 2) Is it bad practice to use the input to the function directly. In example below, I compare intInput to a constant (10). Should I first equate intInput to a local variable and then use a local variable in the comparison. Just seems like extra code to use anothe variable?
No, it's not bad practice if all you're doing is effectively "reading" the input variable, as in your example. It is bad practice to modify the input variable and use the modification for subsequent processing. In this case you should take a copy.
RichardBerry wrote: 3) As opposed to using 'Return True' or 'Return False' is it better to
use the function name - E.g. 'Test = False'
This is VB .NET right? Using Return is the recommended way. Using the function name is retained only for backward compatibility.
Kevin
|
|
|
|
|
RichardBerry wrote: 1) Someone told me a function should have only one exit point - why is this?
A big reason is code maintainability. One way in, one way out. If the code has to be modified, you don't have to hunt down all the exit points in a function to make sure it's returning a good value.
RichardBerry wrote: 2) Is it bad practice to use the input to the function directly. In example below, I compare intInput to a constant (10).
Yes, it is, but not for the reason you think. The first thing a function should normally do, is validate the incomming data. This may require multiple tests on multiple parameters. It may also be helpful to put the validated data in local variables so you know that you're using validated data in the rest of the function code.
RichardBerry wrote: 3) As opposed to using 'Return True' or 'Return False' is it better to
use the function name - E.g. 'Test = False'
No, it's not. Quite the opposite. In some languages, including older versions of VB, you had to assign the return value to the function name. It's far more readable and maintainable to use a Return statement. The "assign to function name" method is still in there for backwards compatibility. I wish it would just go away...
Dave Kreskowiak
Microsoft MVP
Visual Developer - Visual Basic 2006, 2007
|
|
|
|
|
Dave Kreskowiak wrote: One way in, one way out. If the code has to be modified, you don't have to hunt down all the exit points in a function to make sure it's returning a good value.
Excellent point. In this case, it is easiest to have a temporary boolean variable such as result and plug it in with the single return statement...
|
|
|
|
|
Paul Conrad wrote: In this case, it is easiest to have a temporary boolean variable such as result and plug it in with the single return statement...
I use this technique quite regularly.
Kevin
|
|
|
|
|
Kevin McFarlane wrote: I use this technique quite regularly.
And it pretty much works out for the best too
|
|
|
|
|
Many thanks!
By the way - Is it normal to thank someone for their reply on a forum- I feel it's just plain good manners, but on the other hand it clutters the forum...
|
|
|
|
|
RichardBerry wrote: By the way - Is it normal to thank someone for their reply on a forum
Sure it is! It happens so rarely, that it doesn't really clutter up anything.
No problem.
Dave Kreskowiak
Microsoft MVP
Visual Developer - Visual Basic 2006, 2007
|
|
|
|
|
Hi All,
How to find out a particular Page of a MultipageTiff is
Color or Blak and White ????.
Thanks in advance.
Ram
ram
|
|
|
|
|
what is the shortcut key to disable the code.
I am using mouse to do that it seems a lenghty process
|
|
|
|
|
hi nilish,
this is the shortcut to comment/disable the code
Ctrl + k +c
Rupesh Kumar Swami
Software Engineer,
Integrated Solution,
Bikaner (India)
|
|
|
|
|
|
hi Nilish,
for enabling use following Key combination
ctrl + k + u
-- modified at 6:06 Saturday 5th May, 2007
Rupesh Kumar Swami
Software Engineer,
Integrated Solution,
Bikaner (India)
|
|
|
|
|
|
what is the utility of immediate window .i was getting opened in both the compile time as well as the run time
|
|
|
|
|
its to find the value of any int/char/string...
suppose you have a string STR that stores the value 'ABC' at runtime.
debug the project. after you have passed the line where this STR becomes equal to 'ABC', open up the immediate window and type '?STR' and press the enter key. you will see the value 'ABC' returned.
this is the same with any variable or any property of the objects.
try this..
when debugging, take the imm. window and enter '?Me.Name'. you can see the current form's name..
|
|
|
|
|
Then what's the diffeence between add-watch and Immediate window?
|
|
|
|