Probaj ovaj kod, meni radi. Pravio sam drugaru programče za štampanje memoranduma, ponuda i sl., tako da su na formi bili textboxovi, labele i linije. Nekakav bug postoji u VB6, pa mi ovo nije proradilo od prve, Pomogla je čuvena naredba On Error Resume Next, koja vredi Nobelove nagrqade.::))
Sub Stampaj()
Dim kont As Control
On Error Resume Next
For Each kont In Racun.Controls
If kont.Container.Left < 210 Then 'ovaj uslov možeš da izostaviš, bio je potreban za moju formu
If (TypeOf kont Is Label) Then
Printer.Font.Size = kont.Font.Size
Printer.Font.Name = kont.Font.Name
Printer.Font.Bold = kont.Font.Bold
Select Case kont.Alignment
Case 0
Printer.CurrentX = kont.Container.Left + kont.Left
Printer.CurrentY = kont.Container.Top + kont.Top
Printer.Print kont.Caption
Case 1
Printer.CurrentX = kont.Container.Left + kont.Left + kont.Width - TextWidth(kont.Caption)
Printer.CurrentY = kont.Container.Top + kont.Top
Printer.Print kont.Caption
End Select
If kont.BorderStyle = 1 Then
Printer.DrawWidth = 8
Printer.Line (kont.Container.Left + kont.Left - 1, kont.Container.Top + kont.Top)- _
(kont.Container.Left + kont.Left + kont.Width, kont.Height + kont.Container.Top + kont.Top), , B
End If
ElseIf (TypeOf kont Is Line) Then
Printer.DrawWidth = 8
Printer.Line (kont.Container.Left + kont.X1, kont.Container.Top + kont.Y1)- _
(kont.Container.Left + kont.X2, kont.Container.Top + kont.Y2)
ElseIf TypeOf kont Is TextBox Then
Printer.Font.Name = kont.Font.Name
Printer.Font.Size = kont.Font.Size
Printer.Font.Bold = kont.Font.Bold
Printer.CurrentX = kont.Left + kont.Container.Left
Printer.CurrentY = kont.Top + kont.Container.Top
Printer.Print kont.Text
End If
End If
Next
End Sub