0/5 (12 avis)
Snippet vu 6 712 fois - Téléchargée 44 fois
Private Sub Text1_Click() '******************************************************* ' NLigne est à 1 pour la première ligne qui n'est pas ' comptée avec cette méthode '******************************************************* NLigne = 1 '******************************************************* ' chr(10) -> saut de ligne ' chr(13) -> caractère de retour chariot ' chr(10)+chr(13) donne un passage à la ligne suivante '******************************************************* For X = 1 To Text1.SelStart + 1 Step 2 If Mid(Text1.Text, X, 1) = Chr(13) Or Mid(Text1.Text, X, 1) = Chr(10) Then NLigne = NLigne + 1 Next '******************************************************* ' Text1.selstart permet de compter jusque'à la position ' du curseur qui est sur la ligne à numéroter '******************************************************* ' Step 2 permet de tester un caractère sur deux ' ce qui permet d'être un peut plus rapide que ' de tester tous les carctères un à un. '******************************************************* Suite: '******************************* ' Affiche le numéro de la ligne '******************************* Label1.Caption = "Ligne N°" + Str(NLigne) End Sub Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer) '***************************************************** ' Exécute la fonction qui donne le numéro de la ligne '***************************************************** Text1_Click End Sub
26 mars 2007 à 14:12
26 mars 2007 à 13:45
Private Const EM_LINEFROMCHAR As Long = &HC9
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByRef lParam As Any) As Long
Private Sub Text1_Click()
Dim nLine As Long
nLine = 1 + SendMessage(Text1.hwnd, EM_LINEFROMCHAR, Text1.SelStart, ByVal 0&)
Label1.Caption = "Ligne N°" & nLine
End Sub
Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)
Text1_Click
End Sub
26 mars 2007 à 13:40
MsgBox SendMessage(Form1.Text1.hWnd, EM_GETLINECOUNT, 0, Byval 0)
ravi de voir que tu a cherché un peu par toi même.
26 mars 2007 à 13:36
Pour compter les lignes d'un contrôle txt avec ScrollBars = 2-Vertical :
'Compter les lignes d'un controle
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_GETLINECOUNT = &HBA
MsgBox SendMessage(Form1.Text1.hWnd, EM_GETLINECOUNT, 0, 0)
Merci !!!!!!
26 mars 2007 à 11:44
faut utiliser les APIs.
SendMessage et EM_LINEFROMCHAR
voir la doc :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/editcontrols/editcontrolreference/editcontrolmessages/em_linefromchar.asp
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.