Posted on 1998-05-25
Last Modified: 2011-10-03
I need a complete and detailed  working example of code for verticle scrolling of a text box. I am using vb4-16bit
Question by:hjaycox
  • 3
  • 2

Author Comment

ID: 1461589
Edited text of question

Accepted Solution

bin_huwairib earned 600 total points
ID: 1461590

[1] To scroll a text box automatically:
Set the MultiLine property to True and the ScrollBars property to Vertical (2).

[2] To scroll text box programmatically, check the following example:

1. From the File menu, choose New Project (press ALT, F, N).
2. Double-click Form1 to bring up the code window.
3. Add the following API declaration to the General Declarations
section of Form1:
Declare Function PutFocus% Lib "user" Alias "SetFocus" (ByVal
Declare Function SendMessage& Lib "user" (ByVal hWd%,
                                          ByVal wMsg%,
                                          ByVal wParam%,
                                          ByVal lParam&)
4. Create a text box called Text1 on Form1. Set the MultiLine property to True and the ScrollBars property to Horizontal (1).
5. Create a command button called Command1 and change the Caption to "Vertical".
6. Create another command button called Command2 and change the Caption to "Horizontal".
7. From the General Declarations section of Form1, create a procedure to initialize some text in the text box as follows:
Sub InitializeTextBox ()
Text1.Text = ""
For i% = 1 To 50
 Text1.Text = Text1.Text + "This is line " + Str$(i%)
 For j% = 1 to 10
  Text1.Text = Text1.Text + " Word "+ Str$(j%)
 Next j%
    Text1.Text = Text1.Text + Chr$(13) + Chr$(10)
   x% = DoEvents()
Next i%
End Sub
8. Add the following code to the load event procedure of Form1:
Sub Form_Load ()
 Call InitializeTextBox
End Sub
9. Create the actual scroll procedure within the General Declarations section of Form1 as follows:
Function ScrollText& (TextBox As Control, vLines As Integer, hLines As Integer)

Lines& = Clng(&H10000 * hLines) + vLines
SavedWnd%  = Screen.ActiveControl.Hwnd
Success& = SendMessage(TextBox.HWnd, EM_LINESCROLL, 0, Lines&)
r% = PutFocus% (SavedWnd%)
ScrollText& = Success&
End Function

10. Add the following code to the click event procedure of Command1 labeled "Vertical":
Sub Command1_Click ()
 Num& = ScrollText&(Text1, 5, 0)
End Sub
11.  Add the following code to the click event procedure of Command2 labeled "Horizontal":
Sub Command2_Click ()
 Num& = ScrollText&(Text1, 0, 5)
End Sub

Best regards
Bin Huwairib

Author Comment

ID: 1461591

1- Add Private keyword before the declaration:

 Private Declare Function PutFocus% Lib...
 Private Declare Function SendMessage& Lib...

2- You mess type the function, its not CHNG its CLNG (clng) and its a function in VB.

3- The loop in InitializeTEXTBOX() sub is for testing perpose, so you can remove it and put your code there. Example:

Sub InitializeTextBox()
 Dim MyParag as String
 MyParag = "Line No.1" & Chr(13) & Chr(10)
 MyParag = MyParag + "Line No.2" + Chr(13) + Chr(10)
 MyParag = MyParag + "Line No.30"
 Text1.Text = MyParag
End Sub

Bin Huwairib

Expert Comment

ID: 1461592
thanks have another 100 on me

Author Comment

ID: 1461593
excellent ...thank you

Featured Post

Are your AD admin tools letting you down?

Managing Active Directory can get complicated.  Often, the native tools for managing AD are just not up to the task.  The largest Active Directory installations in the world have relied on one tool to manage their day-to-day administration tasks: Hyena. Start your trial today.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

This article describes some techniques which will make your VBA or Visual Basic Classic code easier to understand and maintain, whether by you, your replacement, or another Experts-Exchange expert.
If you need to start windows update installation remotely or as a scheduled task you will find this very helpful.
As developers, we are not limited to the functions provided by the VBA language. In addition, we can call the functions that are part of the Windows operating system. These functions are part of the Windows API (Application Programming Interface). U…
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…

772 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question