Category : BASIC Source Code
Archive   : LINENO.ZIP
Filename : EDITDEMO.FRM

 
Output of file : EDITDEMO.FRM contained in archive : LINENO.ZIP
VERSION 2.00
Begin Form Form1
Caption = "Form1"
Height = 4425
Left = 165
LinkTopic = "Form1"
ScaleHeight = 4020
ScaleWidth = 6630
Top = 1140
Width = 6750
Begin Timer Timer1
Interval = 100
Left = 3720
Top = 120
End
Begin TextBox Text2
Height = 285
Left = 4440
TabIndex = 2
Text = "Click to change focus."
Top = 1560
Width = 2055
End
Begin CommandButton Command1
Caption = "Exit"
Height = 375
Left = 4440
TabIndex = 1
Top = 1080
Width = 1095
End
Begin TextBox Text1
Height = 3015
Left = 480
MultiLine = -1 'True
TabIndex = 0
Text = "Text1"
Top = 840
Width = 3855
End
Begin Label Label5
Height = 255
Left = 1440
TabIndex = 6
Top = 480
Width = 495
End
Begin Label Label4
Caption = "Line No.:"
Height = 255
Left = 480
TabIndex = 5
Top = 480
Width = 855
End
Begin Label Label3
Caption = "Character:"
Height = 255
Left = 480
TabIndex = 4
Top = 120
Width = 855
End
Begin Label Label2
Height = 255
Left = 1440
TabIndex = 3
Top = 120
Width = 615
End
End

'API function declarations needed to get line number
Declare Function GetFocus Lib "user" () As Integer
Declare Function SendMessage Lib "user" (ByVal a%, ByVal b%, ByVal c%, ByVal d As Any) As Long

Sub Command1_Click ()
End
End Sub

Sub Form_Load ()
thetext$ = "This is a demonstration of getting the current cursor position and line number from a text box control. "
thetext$ = thetext$ + "Formerly, in VB 1.0, it was almost impossible to always know which line the cursor was on when "
thetext$ = thetext$ + "focus switched from another control to the text box. To see how this works, click on the box to "
thetext$ = thetext$ + "the right, then click again, anywhere inside this text box, or type in the box."
text1.Text = thetext$
End Sub

Function GetLineNo (charpos&)
'Set constant value
Const EM_linefromchar = &H400 + 25
'Get current line number from cursor position
pos% = 1 + SendMessage(GetFocus(), EM_linefromchar, -1, 0&)
'Assign return value to function
GetLineNo = pos%
End Function

Sub Text1_GotFocus ()
timer1.interval = 100 'Sets timer interval to .1 sec.
timer1.Enabled = True 'activates timer routine to get line number when edit control has focus.
End Sub

Sub Text1_LostFocus ()
timer1.Enabled = False 'disables timer when focus is lost.
End Sub

Sub Timer1_Timer ()
label2.Caption = text1.SelStart 'gets character position
pos& = text1.SelStart 'assign to variable
currline = GetLineNo(pos&) 'calls linenumber function
label5.Caption = currline 'displays current line number
End Sub



  3 Responses to “Category : BASIC Source Code
Archive   : LINENO.ZIP
Filename : EDITDEMO.FRM

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/