Der Quellcode (siehe unten) aus dem Handbuch kann nahezu
unverändert übernommen werden. Einige unerläßliche Voraussetzungen sind jedoch leider
unerwähnt geblieben. Hier eine Zusammenfassung: *
Das Bildfeld (kein Anzeigesteuerelement!) muß folgende Eigenschaften haben:
1. ScaleMode = 3 (Pixel)
2. Visible = True
* Im Deklarationsabschnitt der Prozedur
"Bildfeld_drucken" darf nicht die Anweisung "DefInt" auftauchen.
* Das alles funktioniert auch bei Icons.
Leider verfügt der Code im Handbuch nicht über die
Möglichkeit, den Ausdruck nach Belieben zu plazieren. Dies wurde durch die Parameter
xwert und ywert ergänzt.
Bitte beachten: Die Variablen xwert und ywert sind davon abhängig, wo im betreffenden
Form das Bildfeld zu finden ist. Also zunächst den Platz des Bildfeldes bestimmen und
erst danach die passenden Werte für xwert und ywert suchen.
Es ist übrigens ohne Belang, ob das Fenster vor dem Ausdruck verschoben wird.
'Für den Declarationsabschnitt der Form
oder eines ggf. schon existiereden Moduls
Sub Bildfeld_drucken (xwert, ywert)
'Lokale Variablen deklarieren
Dim XRd, YRd, PelX, PelY, PelC
ScrX = Screen.TwipsPerPixelX
ScrY = Screen.TwipsPerPixelY
For YRd = 0 To Bildfeld.ScaleHeight - 1
PelY = Bildfeld.Top + (YRd * ScrY) 'Bildfeld ist der Name für Picture1 - ggf. umbenennen.
For XRd = 0 To Bildfeld.ScaleWidth - 1
PelX = Bildfeld.Left + (XRd * ScrX)
PelC = Bildfeld.Point(XRd, YRd)
If PelC <> QBColor(7) Then
Printer.Line (PelX + xwert, PelY + ywert)-Step(ScrX, ScrY), PelC, BF
End If
Next XRd
DoEvents
Next YRd
End Sub
Der Aufruf aus dem Programm (z.Bsp.
über einen Commandbutton) müßte dann lauten
call Bildfeld_drucken (xwert, ywert)
Der Tipp hat bei mir leider nicht 100% geklappt - kann aber nicht ganz ausschließen, das
dies an Windows95 liegt, deshalb selber testen.
Um einen Formularvorschub auszulösen mit Printer.EndDoc und Printer.NewPage testen. |