Om man kör detta: Jag har kommit på en lösning själv: Hej Hej Sven!Printer ?????
Dim x as Printer
set x = Printer
set Printer = x
så får man "Type mismatch" !!!
Hur kan det komma sig???
I MSDN Visual Basic Reference finns ett exempel på användning
av Printers Collection:
Dim X As Printer
For Each X In Printers
If X.Orientation = vbPRORPortrait Then
' Set printer as system default.
Set Printer = X
' Stop looking for a printer.
Exit For
End If
Next
Det här fungerar inte eftersom Orientation svar med 2 (landskap)
för alla skrivare oavsett vilken orientering dom har.
Varför är det så??
Jag behöver hämta uppgifter om pappersstorlek och offset mm från
en skrivare som inte är den aktiva systemskrivaren.
Hur skall jag göra det?
- HansSv: Printer ????? Fler frågor
Printers Collection verkar inte funka som "vanlig" Collection.
Indexeringen börjar nämligen på 0. Det går att komma åt en printer
på rätt sätt genom att ta reda på indexnumret i Printers och
skriva set Printer = Printers(index)
Men.....
Hur funkar egentligen CommonDialog showPrinter när flaggan är
satt till att endast välja printer och egenskaper??
Variabeln Printer uppdateras inte förrän till nästa gång applikationen
körs. Jag kan inte använda CommonDialog showPrinter för att välja
en skrivare och sedan t ex hämta uppgift om skrivbar yta. Jag kan
inte ens få det namnet på den nya skrivaren.
Skall det vara så??? Varför?
- HansSv: Printer ????? Fler frågor
Har ungefär samma problem som du med CommonDialog ShowPrinter.
Jag har kämpat och strulat med att få detta att funka.
Min applikation ställer Printern i papermod Landscape allt Ok.
När jag skrivit färdigt EndDoc ,vill jag klart ställa tillbaka
till Portraitmod,normalt A4 utskrift,men icke jag klarar inte detta.
frustrerad
SvenSv: Printer ????? Fler frågor
Jag tror att det är så att objektet Printer i VB inte är den "verkliga"
aktuella systemprintern, utan en kopia. Denna kopia uppdateras
inte efter att en ändring gjorts i CommonDialog.
I mitt fall är applikationen inte VB, jag använder bara VB för att
göra dialogen, och lämnar uppgifter om vald printer, inklusive namnet,
till applikationen. Den applikationen kan själv vrida utskriften vid
behov, så jag har inte riktigt ditt problem den här gången, men har
haft det förut, utan att kunna göra något åt det.
- Hans