Wenn Sie an einem Projekt arbeiten, das in irgendeiner
    Form mit einzeiligen oder noch besser mehrzeiligen Textfeldern zu tun hat, dann könnte
    dieser Tipp für Sie interessant sein. 
    Sie können hier, für den Benutzer Ihres Programms, eine, z.Bsp. aus Word bekannte
    Funktionalität, anbieten die ständig die aktuelle Cursorposition im Text anzeigt. 
     
    cursrpos.mak 
    CURSRPOS.FRM 
    ProjWinSize=152,402,248,215 
    ProjWinShow=2 
    Title="CURSRPOS" 
    ExeName="CURSRPOS.EXE" curspos.frm 
    VERSION 2.00 
    Begin Form Form1 
    BorderStyle = 3 'Fixed Double 
    Caption = "Ermitteln der aktuellen Cursorposition in Textfeldern" 
    ClientHeight = 6105 
    ClientLeft = 1095 
    ClientTop = 1485 
    ClientWidth = 7365 
    ClipControls = 0 'False 
    ControlBox = 0 'False 
    Height = 6510 
    Left = 1035 
    LinkTopic = "Form1" 
    ScaleHeight = 6105 
    ScaleWidth = 7365 
    Top = 1140 
    Width = 7485 
    Begin CommandButton Command1 
    Caption = "Ende" 
    Height = 255 
    Left = 6360 
    TabIndex = 6 
    Top = 5760 
    Width = 855 
    End 
    Begin Timer Timer1 
    Interval = 10 
    Left = 6720 
    Top = 5640 
    End 
    Begin TextBox Text1 
    Height = 5295 
    Left = 120 
    MultiLine = -1 'True 
    TabIndex = 0 
    Top = 240 
    Width = 7095 
    End 
    Begin Label Label3 
    Alignment = 1 'Right Justify 
    Caption = "Die Idee stammt von Jürgen Anke" 
    Height = 255 
    Left = 3840 
    TabIndex = 5 
    Top = 0 
    Width = 3495 
    End 
    Begin Label Label2 
    BorderStyle = 1 'Fixed Single 
    Height = 255 
    Left = 2160 
    TabIndex = 2 
    Top = 5760 
    Width = 495 
    End 
    Begin Label Label5 
    Caption = "Zeichen :" 
    FontBold = 0 'False 
    FontItalic = 0 'False 
    FontName = "MS Sans Serif" 
    FontSize = 8.25 
    FontStrikethru = 0 'False 
    FontUnderline = 0 'False 
    Height = 255 
    Left = 1440 
    TabIndex = 3 
    Top = 5760 
    Width = 735 
    End 
    Begin Label Label4 
    Alignment = 1 'Right Justify 
    Caption = "Zeile :" 
    FontBold = 0 'False 
    FontItalic = 0 'False 
    FontName = "MS Sans Serif" 
    FontSize = 8.25 
    FontStrikethru = 0 'False 
    FontUnderline = 0 'False 
    Height = 255 
    Left = 120 
    TabIndex = 4 
    Top = 5760 
    Width = 615 
    End 
    Begin Label Label1 
    BorderStyle = 1 'Fixed Single 
    Height = 255 
    Left = 840 
    TabIndex = 1 
    Top = 5760 
    Width = 495 
    End 
    End  
    Declare Function SendMessage Lib "user" (ByVal
    hWnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Any) As
    Integer 
    Const WM_USER = &H400 
    Const EM_GETLINECOUNT = WM_USER + 10 
    Const EM_LINEFROMCHAR = WM_USER + 25 
    Const EM_LINEINDEX = WM_USER + 11  
    Sub Command1_Click () 
    Unload form1 
    Set form1 = Nothing 
    End 
    End Sub  
    Sub Timer1_Timer () 
    iLines = SendMessage(Text1.hWnd, EM_LINEFROMCHAR, -1, 0&) + 1  
    Chars = SendMessage(Text1.hWnd, EM_LINEINDEX, -1, 0&)
     
    iCol = (Text1.SelStart + Text1.SelLength) - Chars + 1  
    ILinesCount = "Anzahl Zeilen: " &
    SendMessage(Text1.hWnd, EM_GETLINECOUNT, 0, 0&)  
    Label1.Caption = iLines 
    Label2.Caption = iCol 
    End Sub 
     
    Um den Code zu verwenden legen Sie, zum Beispiel mit Notepad, eine Datei an, in den Sie
    den Code kopieren und speichern die Datei unter dem vorgegebenen Namen ab. Starten Sie nun
    die *.mak Datei und es öffnet sich Ihr Visual Basic Programm, in dem Sie nun das Projekt
    zum Test verfügbar haben.  |