'WordWrap 2
'make a new project with a form (name = frmWordWrap)
'one textbox (name = text1)
'two labels with an index (name = label1(0) & label1(1)
'two textboxes with an index (name = text2(0) & text2(1)
'a command button (name = command1)
'insert the code
'press F5
Option Explicit
Dim intLM as
Integer
Dim intMaxLength as
Integer
Private sub
Command1_Click()
Printer.ScaleMode = vbMillimeters
Printer.Scale (0, 0)-(210, 290)
Call PrintExample
Printer.EndDoc
End Sub
Private sub
Form_Load()
dim
strDummy as
String
strDummy = "wie weet waar willem wouter
woont?" & vbCrLf
strDummy = strDummy + "willem wouter
woont
weit weg."
Text1.Text = strDummy
Text2(0).Text = "15"
Text2(1).Text = "20"
End Sub
Private sub
PrintExample()
intLM = CInt(Text2(0).Text)
intMaxLength = CInt(Text2(1).Text)
Printer.CurrentX = intLM
Call CheckLine(Text1.Text)
End Sub
Public sub
Wrap(source as
String)
dim
intCounter as
Integer
dim
strPart as
String
dim
intTeller as
Integer
intCounter = 1
Do While intCounter < Len(source)
strPart = Mid$(source, intCounter, intMaxLength)
If intCounter + Len(strPart) < Len(source) Then
For intTeller = Len(strPart) To 1 Step -1
If Mid$(strPart, intTeller, 1) = Chr(32) Then
Printer.CurrentX = intLM
Printer.Print Mid$(source, intCounter, intTeller)
intCounter = intCounter + intTeller
intTeller = 1
end
If
Next intTeller
Else
Printer.CurrentX = intLM
Printer.Print strPart
intCounter = Len(source)
end
If
Printer.CurrentX = intLM
Loop
End Sub
Public sub
CheckLine(source as
String)
dim
positie
dim
intLenght as
Integer
dim
intCounter as
Integer
dim
strDummy as
String
intLenght = Len(source)
strDummy = source
'vanaf eerste teken tot aan het laatste teken
For intCounter = 1 To intLenght
'als teken is harde return
If Mid$(strDummy, intCounter, 1) = Chr(10) Then
If Len(Mid$(strDummy, 1, intCounter - 2)) > intMaxLength Then
Call Wrap(Mid$(strDummy, 1, intCounter - 2))
Else
Printer.CurrentX = intLM
Printer.Print Mid$(strDummy, 1, intCounter - 2)
end
If
strDummy = Right$(strDummy, intLenght - intCounter)
intCounter = 1
intLenght = Len(strDummy)
end
If
Next intCounter
If Len(strDummy) > intMaxLength Then
Call Wrap(strDummy)
Else
Printer.CurrentX = intLM
Printer.Print strDummy
end
If
End Sub
Return