A lot of customers call our technical engineers to find out how to read a document row by row or how to select a complete page. In the past we have shown you how to read a document row by row.
This week, we are going to show you a very simple way to select a complete page of a document.
We will be using the CurrentInputPosition property, which returns or sets an array of three values (that specify the page, line and column number of the current text input position). We use this property to set the current input position to the first character position in the specified page. This position will be stored in the variable cStartPos using the SelStart property. In our example, the page number can be selected from a combo box. First of all, this combo box needs to be filled with the pages of the document.
Public Sub FillCombo(pages As Integer)
Form1.Combo1.Clear
For i = 1 To pages
Form1.Combo1.AddItem i
Next i
End Sub
Now, we use CurrentInputPosition to set the caret to the first position of the next page. The variable cEndPos will be set with the SelStart property. First, however, we need to subtract one character position, so that the position specifies the last character position of the previous page. Once we have done that, we can select the complete page using SelStart and SelLength. SelLength specifies the length of the selection. We need to subtract cStartPos from cEndPos to get the length of the selection.
Private Sub SelectPage()
Dim CurrentPositon() As Long
CurrentPositon() = TXTextControl1.CurrentInputPosition
cSelectedPage = Val(Combo1.Text)
CurrentPositon(0) = cSelectedPage
CurrentPositon(1) = 1
CurrentPositon(2) = 0
TXTextControl1.CurrentInputPosition = CurrentPositon()
cStartPos = TXTextControl1.SelStart
If cSelectedPage <> cCurPages Then
CurrentPositon(0) = cSelectedPage + 1
CurrentPositon(1) = 1
CurrentPositon(2) = 0
TXTextControl1.CurrentInputPosition = CurrentPositon()
cEndPos = TXTextControl1.SelStart - 1
Else
TXTextControl1.SelStart = -1
cEndPos = TXTextControl1.SelStart
End If
TXTextControl1.SelStart = cStartPos
TXTextControl1.SelLength = cEndPos - cStartPos
TXTextControl1.SetFocus
End Sub
The variable cCurPages needs to be updated if the user changes the contents of TX Text Control. We use the Change event to do this.
Private Sub TXTextControl1_Change()
cCurPages = TXTextControl1.CurrentPages
FillCombo (cCurPages)
End Sub
As ever, we would be delighted to help you with this example. Please post your questions and requests for support into the TX Text Control Support Forum.
Best regards
The Newsletter Team