VicoLaChips2
Messages postés436Date d'inscriptiondimanche 20 janvier 2002StatutMembreDernière intervention 2 février 2010
-
19 avril 2002 à 06:48
cs_dabro
Messages postés24Date d'inscriptionmardi 15 avril 2003StatutMembreDernière intervention25 novembre 2016
-
26 mars 2007 à 14:12
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_dabro
Messages postés24Date d'inscriptionmardi 15 avril 2003StatutMembreDernière intervention25 novembre 2016 26 mars 2007 à 14:12
Merci Renfield... C'est vrai que quand on sait où chercher çà va mieux...
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 26 mars 2007 à 13:45
pour ceux qui trouvent que le code présenté ici est trop lent....
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
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 26 mars 2007 à 13:40
gaffe au Byval :
MsgBox SendMessage(Form1.Text1.hWnd, EM_GETLINECOUNT, 0, Byval 0)
ravi de voir que tu a cherché un peu par toi même.
cs_dabro
Messages postés24Date d'inscriptionmardi 15 avril 2003StatutMembreDernière intervention25 novembre 2016 26 mars 2007 à 13:36
Bon, ben j'ai la réponse grâce à Renfield :
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
cs_dabro
Messages postés24Date d'inscriptionmardi 15 avril 2003StatutMembreDernière intervention25 novembre 2016 26 mars 2007 à 09:25
Salut, quelqu'un aurait la combine pour faire la même chose, mais avec ScrollBars = 2 - Vertical. Dans ces conditions les mises à la ligne automatiques ne sont pas comptées...
SkyRocKo
Messages postés174Date d'inscriptionsamedi 10 mai 2003StatutMembreDernière intervention18 février 2006 12 août 2004 à 14:37
Génial !
10/10
wallon14
Messages postés56Date d'inscriptionvendredi 17 octobre 2003StatutMembreDernière intervention 3 juillet 2005 24 juin 2004 à 16:58
plus de 900 affichages et je suis le premier a mettre une note... 10/10 ^^ Bin oui j'suis généreu :oP
Mais vu le nombre de mecs qui ont pompé sans commenter ni noter...
elguevel
Messages postés718Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention22 novembre 20163 19 sept. 2003 à 15:16
Heu ya pas plus rapide ??? car 10 Minute pour calculer 1 Ligne ...
Encore une methode comme celle là en delphi çà prend 10 fois moin de temps, mais bon compilateur de très haut niveau oblige il faudrai trouvé une autre methode !!!
OrionLG
Messages postés4Date d'inscriptionlundi 17 décembre 2001StatutMembreDernière intervention24 janvier 2003 19 avril 2002 à 11:14
Essaye en ajoutant un label (Label2) et remplace les deux dernière lignes de Private Sub Text1_Click() pas les ligne suivantes :
For x = Text1.SelStart To 1 Step -1
' Détecte la fin de la ligne précédente
If Mid(Text1.Text, x, 1) = Chr(10) Then
NColonne = Text1.SelStart - x + 1
GoTo Suite
End If
Next
' Donne la position du curseur si il est sur la première ligne
' (pas de ligne précédente donc pas de caractère chr(10))
NColonne = Text1.SelStart + 1
Suite:
'*******************************
' Affiche le numéro de la ligne
'*******************************
Label1.Caption = "Ligne N°" + Str(NLigne) + " / Colonne N°" + Str(NColonne)
If Text1.SelStart > 0 Then
' Récupère le caractère avant le curseur
caractere = Mid(Text1.Text, Text1.SelStart, 1)
' Affiche le numéro de la ligne, le caractère et son code ASCII
Label2.Caption = caractere + " / " + Str(Asc(caractere))
End If
J'espère que j'ai répondu à ta question ;-)
leptidev
Messages postés206Date d'inscriptionmercredi 30 janvier 2002StatutMembreDernière intervention 4 décembre 2007 19 avril 2002 à 09:34
Super trop bien ton truc, moi je voudrais aussi récupérer la position du curseur (le numéro du caracétère qui est écrit) et aussi les coordonnées (top et left) tu sais comment on fait ???
VicoLaChips2
Messages postés436Date d'inscriptiondimanche 20 janvier 2002StatutMembreDernière intervention 2 février 20102 19 avril 2002 à 06:48
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
26 mars 2007 à 09:25
12 août 2004 à 14:37
10/10
24 juin 2004 à 16:58
Mais vu le nombre de mecs qui ont pompé sans commenter ni noter...
19 sept. 2003 à 15:16
Encore une methode comme celle là en delphi çà prend 10 fois moin de temps, mais bon compilateur de très haut niveau oblige il faudrai trouvé une autre methode !!!
19 avril 2002 à 11:14
For x = Text1.SelStart To 1 Step -1
' Détecte la fin de la ligne précédente
If Mid(Text1.Text, x, 1) = Chr(10) Then
NColonne = Text1.SelStart - x + 1
GoTo Suite
End If
Next
' Donne la position du curseur si il est sur la première ligne
' (pas de ligne précédente donc pas de caractère chr(10))
NColonne = Text1.SelStart + 1
Suite:
'*******************************
' Affiche le numéro de la ligne
'*******************************
Label1.Caption = "Ligne N°" + Str(NLigne) + " / Colonne N°" + Str(NColonne)
If Text1.SelStart > 0 Then
' Récupère le caractère avant le curseur
caractere = Mid(Text1.Text, Text1.SelStart, 1)
' Affiche le numéro de la ligne, le caractère et son code ASCII
Label2.Caption = caractere + " / " + Str(Asc(caractere))
End If
J'espère que j'ai répondu à ta question ;-)
19 avril 2002 à 09:34
19 avril 2002 à 06:48
Bonne prog @+