Drucker Auswahl + Querformat

Hallo,
ich mal wieder.

Nebeninfo: Ich hab mein Druck Problem gelöst. Hab mir selbst ne Drucken Funktion geschrieben jetz gehts so wie ich will. BIS AUF:

Ich will noch n Dialog aufrufen, mit dessen Hilfe man einen Drucker auswählen kann. Das Auflisten Funktioniert wunderbar. Das Auswählen aus der Listbox auch. Aber ich weiss nicht wie ich den ausgewählten Wert an die MainForm zurück geben soll und den Drucker wählen soll.

Bis jetz siehts so aus:
Main.frm:
'Aufruf in Main
drucker.Show

drucker.frm:

Private Sub InstallierteDrucker()
 Dim x As Integer
 Dim AnzDrucker As Long
 List1.Clear
 AnzDrucker = Printers.Count
 If AnzDrucker = 0 Then
 List1.AddItem "Kein Drucker installiert."
 Else
 For x = 0 To AnzDrucker - 1
 List1.AddItem Printers(x).DeviceName
 Next

 End If

End Sub

Private Sub auflisten\_Click()
 InstallierteDrucker
End Sub

Private Sub cmdCancel\_Click()
 Me.Hide
End Sub

Private Sub wahl\_Click()
 DruckerName = List1.Text
 Me.Hide
End Sub

Ich hab schon geguckt. Aber ich find nich so richtig die lösung.
Ich habs auch schon in:

Private Sub wahl\_Click()
 Dim DruckerName As Printer
 DruckerName = List1.Text
 Set Printer = DruckerName
 Me.Hide
End Sub

Das er den Drucker für die komplette Application für die Laufzeit als Standard setzt aber da hat er auch rumgeweint.

Dann das nächste ist:
Wie gebe ich dem Drucker die anweisung im Querformat zu drucken?

Ich weiss es steht überall viel zu dem Thema aber ich hab schon geschaut das hilf mir irgendwie nix. Währe nett wenn mir wer das mit der Variablenübergabe von Form2 an Form1 zb mal erklären könnte. Bei Perl wüsst ichs ^^
Hab da aber gerade irgendwie ne denkblokade und raff das nich.

Danke für die hilfe

grüße vom digi

Nachtrag
Hallo,

warum machst Du das eigentlich so kompliziert?
Ich verwende das nur, wenn das Programm den Drucker auswählen soll, weil verschiedene Programme gleichzeitig laufen, die Jedes auf einen anderen Drucker drucken sollen. Wenn der User den Drucker selbst auswählt, nehme ich den Commondilalog, dann sieht der ganze Code so aus:

Private Sub Command1\_Click()
 CommonDialog1.ShowPrinter
End Sub

Da ist alles fertig, was Du mühsam selbst geschrieben hast.

Gruß, Rainer

Hallo,

ich mal wieder.

Nebeninfo: Ich hab mein Druck Problem gelöst. Hab mir selbst
ne Drucken Funktion geschrieben jetz gehts so wie ich will.
BIS AUF:

Ich will noch n Dialog aufrufen, mit dessen Hilfe man einen
Drucker auswählen kann. Das Auflisten Funktioniert wunderbar.
Das Auswählen aus der Listbox auch. Aber ich weiss nicht wie
ich den ausgewählten Wert an die MainForm zurück geben soll
und den Drucker wählen soll.

Ich habs auch schon in:

Dim prThis As Printer

Private Sub wahl_Click()

Dim DruckerName As String
DruckerName = List1.List(List1.ListIndex)

 For Each prThis In Printers
 If prThis.DeviceName = DruckerName Then
 Set Printer = prThis
 SetDefaultPrinter = True
 End If
 Next prThis

'Set Printer = DruckerName
Me.Hide
End Sub

Korrektur, inzwischen sind mir Fehler in Deinem Code aufgefallen … :smile:

Dann das nächste ist:
Wie gebe ich dem Drucker die anweisung im Querformat zu
drucken?

Printer.Orientation = 2

Bei Perl wüsst ichs ^^

Wenn ich mal etwas über Perl wissen will, frag ich Dich. :smile:

Gruß, Rainer

So, ich habe das jetz ma so gemacht. Und zwar ich weiss nich ob ich da was falsch verstanden habe oder so aber da kommt der Fehler „Variable not Defined“ bei SetDefaultPrinter = True

Private Sub wahl\_Click()
 Dim DruckerName As String
 DruckerName = List1.List(List1.ListIndex)

 For Each prThis In Printers
 If prThis.DeviceName = DruckerName Then
 Set Printer = prThis
 SetDefaultPrinter = True
 End If
 Next prThis
 Set Printer = DruckerName
 Me.Hide
End Sub

Aber schonma danke ^^

Und das mit dem
CommonDialog1.ShowPrinter oder so … ging auch nich. Was ist Common Dialog? Ist das die funktion die bei mir InstallierteDrucker heisst? Also die ganzen drucker auflistet? Ich mein funzt ja auch so das er mir die Drucker auflistet mit meiner dollen liste da ^^ … Also lieber an der oberen Variante mal sagen warum der der meinung is SetDefaultPrinter=True nich deffiniert ist.

Danke :smile:
grüße
digi

Hallo,

So, ich habe das jetz ma so gemacht.

Nur fast, Du hast die Deklaration vergessen, die ich angegeben habe und die auskommentierte Zeile mit eingefügt.

Und zwar ich weiss nich
ob ich da was falsch verstanden habe oder so aber da kommt der
Fehler „Variable not Defined“ bei SetDefaultPrinter = True

Private Sub wahl\_Click()
 Dim prThis As Printer 
 Dim DruckerName As String
 DruckerName = List1.List(List1.ListIndex)

 For Each prThis In Printers
 If prThis.DeviceName = DruckerName Then
 Set Printer = prThis
 SetDefaultPrinter = True
 End If
 Next prThis
 Me.Hide
End Sub

So ist’s richtig.

Und das mit dem
CommonDialog1.ShowPrinter oder so … ging auch nich. Was ist
Common Dialog?

Ein Steuerelement. Liegt in der Werkzeugsammlung ab VB6.0 Pro.

Ist das die funktion die bei mir
InstallierteDrucker heisst?

??? Was für’n VB hast Du? ‚InstallierteDrucker‘ gibt’s bei mir nicht.

Also die ganzen drucker auflistet?
Ich mein funzt ja auch so das er mir die Drucker auflistet mit
meiner dollen liste da ^^ … Also lieber an der oberen
Variante mal sagen warum der der meinung is
SetDefaultPrinter=True nich deffiniert ist.

Ja, nach der kleinen Korrektur läuft’s, ändern würde ich das jetzt auch nicht mehr. :smile: Fertig ist fertig.

Gruß, Rainer

Noch ein Nachtrag
Hallo,

für diesen Dialog verwendest Du ja offensichtlich eine Form.

Wenn Du das Programm beendest, muß diese Form ausdrücklich entladen werden, sonst läuft der Prozess weiter. Entweder machst Du das für jede Form mit unload, oder Du schreibst in ‚Form_QueryUnload‘ der Hauptform ein ‚End‘.

Gruß, Rainer

Hab VB6 Version 8176 ^^ aber n Common Dialog find ich nirgends. Nichma da wo man die sachen hinzufügen kann. ^^
Die InstallierteDrucker funktion hab ich selbst gebastelt ^^ … hab ich bei meinem 1. Post auch hier rein geschrieben.

Naja wenn ich das nich brauch is ja auch nich wichtig.

Aber das hängt immernoch an genau der selben stelle.

Genau der selbe fehler.

Compile Error:
Variable not definied

Habs genauso rein geschrieben wie des gerade hier gepostet hast. Nix geändert alles definiert.

Ich raffs echt nich :frowning:
komm mir langsam n bisl blöde vor ^^ :smiley:

grüße vom digi …

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

So habs hinbekommen.
Dieses
SetDefaultPrinter = True
Hab ich einfach weg gelassen nun funktionierts wunderbar ^^ … tja einfach ma hier ma da was weglassen und schon is alles schön :smiley:

Danke nochma für die geduld mit mir ^^

Grüße digi ^^ …

Hallo,

Hab VB6 Version 8176 ^^ aber n Common Dialog find ich
nirgends.

Dann startest Du VB eventuell falsch, dann fehlt Dir noch sehr viel mehr, was Du mit Sicherheit brauchst. Ich habe die selbe Version. Hast Du meine Werkzeugsammlung gesehen? (Mail)

Nichma da wo man die sachen hinzufügen kann. ^^

Hmmm. Bei mir steht bei den eingügbaren Komponenten ‚Microsoft Commondialog Control 6.0‘.

Die InstallierteDrucker funktion hab ich selbst gebastelt ^^
… hab ich bei meinem 1. Post auch hier rein geschrieben.

Naja wenn ich das nich brauch is ja auch nich wichtig.

Aber das hängt immernoch an genau der selben stelle.

Genau der selbe fehler.

Compile Error:
Variable not definied

Hast Du bei ‚Dim PrThis as Printer‘ einen Tippfehler? Der Code läuft bei mir so. Ich habe ein wenig dazu gebastelt, damit es lauffähig wird, sieht so aus:

Private Sub Form\_Load()
 Dim prThis As Printer
 For Each prThis In Printers
 List1.AddItem prThis.DeviceName
 Next prThis
End Sub

Private Sub wahl\_Click()
 Dim prThis As Printer
 Dim DruckerName As String
 DruckerName = List1.List(List1.ListIndex)

 For Each prThis In Printers
 If prThis.DeviceName = DruckerName Then
 Set Printer = prThis
 SetDefaultPrinter = True
 End If
 Next prThis
 'Me.Hide
 Printer.Print "Test"
 Printer.EndDoc
End Sub

also gerade mal das ‚hide‘ auskommentiert.

Gruß, Rainer

Hi,

So habs hinbekommen.
Dieses
SetDefaultPrinter = True
Hab ich einfach weg gelassen nun funktionierts wunderbar ^^
… tja einfach ma hier ma da was weglassen und schon is alles
schön :smiley:

schon komisch, bei mir läuft’s so. Hast Du eventuell nur einen Drucker installieret? Meine Liste ist etwas länglich, alle Drucker in der Firma. :smile:

Gruß, Rainer

Nene hab 6 Drucker instlliert und noch 2 PDF drucker. Also eignetlich auch genug ^^

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi,

Nene hab 6 Drucker instlliert und noch 2 PDF drucker. Also
eignetlich auch genug ^^

ja. Na, im Moment läuft’s ja, verschieben wir das, bis es gebraucht wird. :smile:

Gruß, Rainer