¨¦tant d¨¦butante, j'aimerais savoir si VB6
mets ¨¤ disposition une boite stantard de
recherche d'occurence avec les mentions
respect de la casse, vers le haut ou le bas
etc.
merci d'avance
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
François Picalausa
Hello,
Windows offre une boite de recherche et de remplacement toute faite au travers des fonctions FindText et ReplaceText exportées par Comdlg32.dll Cette méthode n'est pas simple à mettre en oeuvre (enregistrement du message FINDMSGSTRING, sous classement du owner).
Je te conseille de créer ta propre boite de recherche à partir d'une form.
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"Rosalie Mignon" a écrit dans le message de news:40f162e9$0$30273$
étant débutante, j'aimerais savoir si VB6 mets à disposition une boite stantard de recherche d'occurence avec les mentions respect de la casse, vers le haut ou le bas etc. merci d'avance
Hello,
Windows offre une boite de recherche et de remplacement toute faite au
travers des fonctions FindText et ReplaceText exportées par Comdlg32.dll
Cette méthode n'est pas simple à mettre en oeuvre (enregistrement du message
FINDMSGSTRING, sous classement du owner).
Je te conseille de créer ta propre boite de recherche à partir d'une form.
--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net
"Rosalie Mignon" <personne@microsoft.com> a écrit dans le message de
news:40f162e9$0$30273$636a15ce@news.free.fr...
étant débutante, j'aimerais savoir si VB6
mets à disposition une boite stantard de
recherche d'occurence avec les mentions
respect de la casse, vers le haut ou le bas
etc.
merci d'avance
Windows offre une boite de recherche et de remplacement toute faite au travers des fonctions FindText et ReplaceText exportées par Comdlg32.dll Cette méthode n'est pas simple à mettre en oeuvre (enregistrement du message FINDMSGSTRING, sous classement du owner).
Je te conseille de créer ta propre boite de recherche à partir d'une form.
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"Rosalie Mignon" a écrit dans le message de news:40f162e9$0$30273$
étant débutante, j'aimerais savoir si VB6 mets à disposition une boite stantard de recherche d'occurence avec les mentions respect de la casse, vers le haut ou le bas etc. merci d'avance
François Picalausa
Hello,
voici un exemple: 'Dans une form frmFind contenant ' Une Frame fraDir ' Deux OptionButtons : optDown et optUp ' Une Checkbox : chkCase ' Deux CommandButtons : cmdCancel et cmdNext ' Un TextBox : txtFind ' Un Label : lblFind Option Explicit
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) If UnloadMode = vbFormControlMenu Then RaiseEvent CloseFind End If End Sub
Private Sub optDown_Click() 'Changement de direction RaiseEvent DirectionChange End Sub
Private Sub optUp_Click() 'Changement de direction RaiseEvent DirectionChange End Sub
Private Sub txtFind_Change() 'Le texte à rechercher a été modifié RaiseEvent FindTextChange End Sub
'------------------------------------------------ 'Dans une autre form contenant un textbox, text1 et un élément de menu, mnuSearch: Option Explicit
Private WithEvents Find As frmFind
Private Sub Find_Find(ByVal strTextToFind As String) 'On doit rechercher l'occurence du texte renvoyé Dim Occurence As Long Dim TextboxText As String
If Find.CaseMatch Then TextboxText = Text1.Text Else 'On utilise les textes convertis en minuscules TextboxText = LCase$(Text1.Text) strTextToFind = LCase$(strTextToFind) End If
If Find.DirectionDown Then Occurence = InStr(Text1.SelStart + 2, _ TextboxText, strTextToFind) - 1 Else If Text1.SelStart > 0 Then 'pour éviter de générer une erreur Occurence = InStrRev(TextboxText, _ strTextToFind, Text1.SelStart) - 1 Else Occurence = -1 End If End If
If Occurence = -1 Then MsgBox "Recherche terminée!" Else 'Définit la position de la sélecition et active le textbox Text1.SelStart = Occurence Text1.SelLength = Len(strTextToFind) Text1.SetFocus End If End Sub
Private Sub Form_Load() Set Find = frmFind
Text1.Text = "Un très long texte dans lequel on peut tester la fonctionnalité de recherche totalement intégrée. Cette fonctionnalité est vraiment géniale! Enfin non, mais il me faut quand même quelques mots pour la tester..." End Sub
Private Sub Form_Unload(Cancel As Integer) Unload frmFind End Sub
Private Sub mnuSearch_Click() 'Ouvre la recherche Find.Find Text1.SelText, Me End Sub
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net "François Picalausa" a écrit dans le message de news:O93$
Hello,
Windows offre une boite de recherche et de remplacement toute faite au travers des fonctions FindText et ReplaceText exportées par Comdlg32.dll Cette méthode n'est pas simple à mettre en oeuvre (enregistrement du
message
FINDMSGSTRING, sous classement du owner).
Je te conseille de créer ta propre boite de recherche à partir d'une form.
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"Rosalie Mignon" a écrit dans le message de news:40f162e9$0$30273$ > étant débutante, j'aimerais savoir si VB6 > mets à disposition une boite stantard de > recherche d'occurence avec les mentions > respect de la casse, vers le haut ou le bas > etc. > merci d'avance
Hello,
voici un exemple:
'Dans une form frmFind contenant
' Une Frame fraDir
' Deux OptionButtons : optDown et optUp
' Une Checkbox : chkCase
' Deux CommandButtons : cmdCancel et cmdNext
' Un TextBox : txtFind
' Un Label : lblFind
Option Explicit
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
If UnloadMode = vbFormControlMenu Then
RaiseEvent CloseFind
End If
End Sub
Private Sub optDown_Click()
'Changement de direction
RaiseEvent DirectionChange
End Sub
Private Sub optUp_Click()
'Changement de direction
RaiseEvent DirectionChange
End Sub
Private Sub txtFind_Change()
'Le texte à rechercher a été modifié
RaiseEvent FindTextChange
End Sub
'------------------------------------------------
'Dans une autre form contenant un textbox, text1 et un élément de menu,
mnuSearch:
Option Explicit
Private WithEvents Find As frmFind
Private Sub Find_Find(ByVal strTextToFind As String)
'On doit rechercher l'occurence du texte renvoyé
Dim Occurence As Long
Dim TextboxText As String
If Find.CaseMatch Then
TextboxText = Text1.Text
Else
'On utilise les textes convertis en minuscules
TextboxText = LCase$(Text1.Text)
strTextToFind = LCase$(strTextToFind)
End If
If Find.DirectionDown Then
Occurence = InStr(Text1.SelStart + 2, _
TextboxText, strTextToFind) - 1
Else
If Text1.SelStart > 0 Then 'pour éviter de générer une erreur
Occurence = InStrRev(TextboxText, _
strTextToFind, Text1.SelStart) - 1
Else
Occurence = -1
End If
End If
If Occurence = -1 Then
MsgBox "Recherche terminée!"
Else
'Définit la position de la sélecition et active le textbox
Text1.SelStart = Occurence
Text1.SelLength = Len(strTextToFind)
Text1.SetFocus
End If
End Sub
Private Sub Form_Load()
Set Find = frmFind
Text1.Text = "Un très long texte dans lequel on peut tester la
fonctionnalité de recherche totalement intégrée. Cette fonctionnalité est
vraiment géniale! Enfin non, mais il me faut quand même quelques mots pour
la tester..."
End Sub
Private Sub Form_Unload(Cancel As Integer)
Unload frmFind
End Sub
Private Sub mnuSearch_Click()
'Ouvre la recherche
Find.Find Text1.SelText, Me
End Sub
--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net
"François Picalausa" <fpicalausa@chez.com> a écrit dans le message de
news:O93$IP2ZEHA.3596@tk2msftngp13.phx.gbl...
Hello,
Windows offre une boite de recherche et de remplacement toute faite au
travers des fonctions FindText et ReplaceText exportées par Comdlg32.dll
Cette méthode n'est pas simple à mettre en oeuvre (enregistrement du
message
FINDMSGSTRING, sous classement du owner).
Je te conseille de créer ta propre boite de recherche à partir d'une form.
--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net
"Rosalie Mignon" <personne@microsoft.com> a écrit dans le message de
news:40f162e9$0$30273$636a15ce@news.free.fr...
> étant débutante, j'aimerais savoir si VB6
> mets à disposition une boite stantard de
> recherche d'occurence avec les mentions
> respect de la casse, vers le haut ou le bas
> etc.
> merci d'avance
voici un exemple: 'Dans une form frmFind contenant ' Une Frame fraDir ' Deux OptionButtons : optDown et optUp ' Une Checkbox : chkCase ' Deux CommandButtons : cmdCancel et cmdNext ' Un TextBox : txtFind ' Un Label : lblFind Option Explicit
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) If UnloadMode = vbFormControlMenu Then RaiseEvent CloseFind End If End Sub
Private Sub optDown_Click() 'Changement de direction RaiseEvent DirectionChange End Sub
Private Sub optUp_Click() 'Changement de direction RaiseEvent DirectionChange End Sub
Private Sub txtFind_Change() 'Le texte à rechercher a été modifié RaiseEvent FindTextChange End Sub
'------------------------------------------------ 'Dans une autre form contenant un textbox, text1 et un élément de menu, mnuSearch: Option Explicit
Private WithEvents Find As frmFind
Private Sub Find_Find(ByVal strTextToFind As String) 'On doit rechercher l'occurence du texte renvoyé Dim Occurence As Long Dim TextboxText As String
If Find.CaseMatch Then TextboxText = Text1.Text Else 'On utilise les textes convertis en minuscules TextboxText = LCase$(Text1.Text) strTextToFind = LCase$(strTextToFind) End If
If Find.DirectionDown Then Occurence = InStr(Text1.SelStart + 2, _ TextboxText, strTextToFind) - 1 Else If Text1.SelStart > 0 Then 'pour éviter de générer une erreur Occurence = InStrRev(TextboxText, _ strTextToFind, Text1.SelStart) - 1 Else Occurence = -1 End If End If
If Occurence = -1 Then MsgBox "Recherche terminée!" Else 'Définit la position de la sélecition et active le textbox Text1.SelStart = Occurence Text1.SelLength = Len(strTextToFind) Text1.SetFocus End If End Sub
Private Sub Form_Load() Set Find = frmFind
Text1.Text = "Un très long texte dans lequel on peut tester la fonctionnalité de recherche totalement intégrée. Cette fonctionnalité est vraiment géniale! Enfin non, mais il me faut quand même quelques mots pour la tester..." End Sub
Private Sub Form_Unload(Cancel As Integer) Unload frmFind End Sub
Private Sub mnuSearch_Click() 'Ouvre la recherche Find.Find Text1.SelText, Me End Sub
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net "François Picalausa" a écrit dans le message de news:O93$
Hello,
Windows offre une boite de recherche et de remplacement toute faite au travers des fonctions FindText et ReplaceText exportées par Comdlg32.dll Cette méthode n'est pas simple à mettre en oeuvre (enregistrement du
message
FINDMSGSTRING, sous classement du owner).
Je te conseille de créer ta propre boite de recherche à partir d'une form.
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"Rosalie Mignon" a écrit dans le message de news:40f162e9$0$30273$ > étant débutante, j'aimerais savoir si VB6 > mets à disposition une boite stantard de > recherche d'occurence avec les mentions > respect de la casse, vers le haut ou le bas > etc. > merci d'avance