Avatar billede simon.ulsnes Nybegynder
28. december 2000 - 23:57 Der er 1 løsning

Markørposition i Rich Edit bokse?

Kan det lade sig gøre at få fat i markørens position (linje og kolonne) i en Rich Edit boks og skrive output i et statuspanel?
Jeg har nemlig længe savnet en lille, hurtig editor som var lidt mere avanceret end Notepad, så jeg besluttede selv at lave en!

Er der noget der ved hvordan gør dette?
Avatar billede jper Nybegynder
30. december 2000 - 10:26 #1
Lav et modul og sæte dette ind der:
Public Declare Function SendMessage Lib \"user32\" Alias \"SendMessageA\" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Public Const EM_GETLINE = &HC4
Public Const EM_GETLINECOUNT = &HBA
Public Const EM_LINEINDEX = &HBB
Public Const EM_LINELENGTH = &HC1

På formen indsætte denne kode:
Option Explicit
Private Sub Command1_Click()
    Unload Me
End Sub

Private Sub Form_Load()
    RichTextBox1.LoadFile \"c:\\setuplog.txt\"
    MainSub
End Sub

Private Sub RichTextBox1_Change()
    MainSub
End Sub


Private Function getLineNumber() As Long
    getLineNumber = 1 + RichTextBox1.GetLineFromChar(RichTextBox1.SelStart)
End Function


Private Function getPosNumber() As Long
    Dim i As Long
    Dim lStart As Long
    Dim lLine As Long

    lStart = RichTextBox1.SelStart + 1
    lLine = 1 + RichTextBox1.GetLineFromChar(RichTextBox1.SelStart)
    i = SendMessage(RichTextBox1.hwnd, EM_LINEINDEX, ByVal lLine - 1, ByVal 0&)

    getPosNumber = lStart - i
   
End Function

   
Private Sub MainSub()
    StatusBar1.Panels(\"lines\").Text = \"Line No. \" & getLineNumber
    StatusBar1.Panels(\"pos\").Text = \"Position No. \" & getPosNumber
End Sub

Private Sub RichTextBox1_Click()
    MainSub
End Sub

Private Sub RichTextBox1_GotFocus()
    MainSub
End Sub

Private Sub RichTextBox1_KeyUp(KeyCode As Integer, Shift As Integer)
    MainSub
End Sub

Private Sub RichTextBox1_LostFocus()
    MainSub
End Sub

Private Sub RichTextBox1_Validate(Cancel As Boolean)
    MainSub
End Sub

Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester