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 … 
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. 
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 
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.
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 
komm mir langsam n bisl blöde vor ^^ 
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 
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 
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. 
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. 
Gruß, Rainer