Hej! Du använder Line Operatorn för att skriva ut boxar: Hej Andreas!Skriva ut en fylld label eller shapes
Mitt problem är att jag vet inte hur amn skriver ut en fylld label med bakgrundsfärg (utan text) eller
en solid shape.
koden jag provat är som följer där me.shpEff är
Printer.CurrentX = 10
Printer.CurrentY = 10
Printer.FillStyle = vbFSSolid
Printer.FillColor = 32768
Printer.Print Me.shpEff
printer.EndDoc
vid utskrift blir det en nolla utskrivet
Tacksam för hjälp
/Stefan HSv: Skriva ut en fylld label eller shapes
<info>
Printer.Line [Step] (x1, y1) - [Step] (x2, y2), [color], [B][F]
</info>
Step är ett nyckelt ordet för att ange att kordinaterna är relativa utifrån aktuell position.
B - står för Box
F - står för Filled Box
Du kan inte använda F utan B.
Här är ett exempel där jag kapslat Line operatorn i en funktion. JAg ritar ut rutorna på skärmen istället för skrivaren:
Private Sub Command1_Click()
DrawFilledSquare Me, 1, 1, 1, 1, 32768, vbCentimeters
DrawBorderSquare Me, 3, 1, 1, 1, 32768, vbCentimeters
End Sub
Private Sub DrawFilledSquare(Dest As Object, X As Single, Y As Single, Width As Single, Height As Single, Color As OLE_COLOR, Optional ScaleMode As ScaleModeConstants = vbTwips)
Dest.Line (Me.ScaleX(X, ScaleMode, Me.ScaleMode), Me.ScaleX(Y, ScaleMode, Me.ScaleMode))-Step(Me.ScaleX(Width, ScaleMode, Me.ScaleMode), Me.ScaleX(Height, ScaleMode, Me.ScaleMode)), Color, BF
End Sub
Private Sub DrawBorderSquare(Dest As Object, X As Single, Y As Single, Width As Single, Height As Single, Color As OLE_COLOR, Optional ScaleMode As ScaleModeConstants = vbTwips)
Dest.Line (Me.ScaleX(X, ScaleMode, Me.ScaleMode), Me.ScaleX(Y, ScaleMode, Me.ScaleMode))-Step(Me.ScaleX(Width, ScaleMode, Me.ScaleMode), Me.ScaleX(Height, ScaleMode, Me.ScaleMode)), Color, B
End Sub
För att istället skriva ut till skrivaren så ersätter du me med Printer i anropet:
Private Sub Command1_Click()
DrawFilledSquare Printer, 1, 1, 1, 1, 32768, vbCentimeters
DrawBorderSquare Printer, 3, 1, 1, 1, 32768, vbCentimeters
Printer.EndDoc
End Sub
Sv:Skriva ut en fylld label eller shapes
Line operatorn funkar
Jag tackar för hjälpen.
Stefan H