Hej! Har nog ett API för att göra det. Men vill då först veta varför du vill vara anonym? jag blev medlem här idag.. vet inte hur allt funkar :S Ska bara ta mig hem. VAr den egentliga ursäkten. ;O) Han inte skriva klart den. Men finns säkert nån som kan hjälpa dig. Här är i alla fall principen för att få det att fungera: Tack så jätte mycket!!!! Om den är bra vet jag inte men den fungerar :-) den funkar perfekt, men tror du att man skulle kunna få det att visas automatiskt på sidan när man byter rad? Jag misstolkade dig. Trode du menade muspekaren. Men du menar altså cursorn? Strecket som blinkar?var är markören?
Jag het en TextBox med namnet TextBox1 (fyndigt va =)). kan jag med nån kod räkna ut var karkören befinner sig i det alltså rad och kolumn..
Exempel:
Rad: 29
Col: 43
Fattar ni hur jag menar?
Hoppas på snabba svar =)
Tack på för hand!Sv: var är markören?
Vad är det du döljer på dit visitkort?Sv: var är markören?
var ändrar man sitt visitkort? och främst: vad är det?
edit: har hittat det, så nu borde det funkaSv: var är markören?
Har inte vb på denna datorn. ;O)Sv: var är markören?
<code>
Option Explicit
Private Const EM_LINEINDEX As Long = &HBB&
Private Const EM_LINEFROMCHAR As Long = &HC9&
Private Const EM_CHARFROMPOS As Long = &HD7&
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Function MakeLong(HighWord As Integer, LowWord As Integer) As Long
MakeLong = (HighWord * &H10000) Or LowWord
End Function
Private Sub Text1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim lPos As Long
Dim lCol As Long
Dim lRow As Long
lPos = SendMessage(Text1.hwnd, EM_CHARFROMPOS, 0&, ByVal MakeLong(ScaleY(Y, ScaleMode, vbPixels), ScaleX(X, ScaleMode, vbPixels)))
lRow = SendMessage(Text1.hwnd, EM_LINEFROMCHAR, lPos, ByVal 0&)
lCol = lPos - SendMessage(Text1.hwnd, EM_LINEINDEX, lRow, ByVal 0&)
Label1 = "Row: " & lRow
Label2 = "Col: " & lCol
End Sub
</code>Sv: var är markören?
Men jag får det inet att fungera.. finns det någon annan som kanske vet?Sv: var är markören?
Lägg ut en textbox som hete Text1 och sen en knapp som kör koden nedan. Koden raderna är långa så håll ett öga på radbrytningarna. Givetvis går det att dela upp på flera rader men det är lite sent...
<code>
intLn = 1 + (Len(Left(Text1.Text, Text1.SelStart)) - Len(Replace(Left(Text1.Text, Text1.SelStart), vbCrLf, "x")))
intCh = Len(Left(Text1.Text, Text1.SelStart)) - InStrRev(Left(Text1.Text, Text1.SelStart), vbCrLf)
MsgBox "Ln " & intLn & vbCrLf & "Ch " & intCh
</code>
/JanneSv: var är markören?
Sv: var är markören?
<code>
Option Explicit
Private Const EM_LINEINDEX As Long = &HBB&
Private Const EM_LINEFROMCHAR As Long = &HC9&
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Sub RefreshInfo()
Dim lPos As Long
Dim lCol As Long
Dim lRow As Long
lPos = Text1.SelStart
lRow = SendMessage(Text1.hwnd, EM_LINEFROMCHAR, lPos, ByVal 0&)
lCol = lPos - SendMessage(Text1.hwnd, EM_LINEINDEX, lRow, ByVal 0&)
Label1.Caption = "Row: " & lRow
Label2.Caption = "Col: " & lCol
End Sub
</code>