VB-Homepage Tipp 066

Ausdruck des Inhalts eines Bildfeldes

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.


Tipp-Download

Quelle : Werner Almesberger

Zurück zur Übersichtsseite