Actuellement dans une appli, j'utilise un fichier de code postaux.
Pour faire une recherche, Je rentre un code, et je compare dans le fichier
jusqu'a trouver toutes les communes qui correspondent.
Pas sorcier.
En revanche, j'aimerai que cet fonction puisse etre utiliser dans plusieurs
applications. Pour eviter de retaper (malgrès les copier coller) tout le
code, et surtout pour alleger, j'aimerai créer soit un module de class, soit
une DLL.
Malheureusement, mes copétences s'arretent avant ça.
Si qqn pouvait me guider dans cette démarche. Bien entendu, je ne suis pas
pressé pour la réponse
Ci joint le code que j'utilise actuellement:
Pla saisie d'un code postal =
Private Sub com_cp_LostFocus()
If ch_commune% = 1 Then Exit Sub
com_commune.clear
com_cp.clear
com_cp.text = t_cp.text
Me.MousePointer = 11
Open App.Path & "\Codepos.txt" For Random As #1 Len = Len(cp)
nb_cp = LOF(1) / Len(cp)
For i = 1 To nb_cp
Get #1, i, cp
If Left$(Trim$(cp.code), 5) = Trim$(com_cp.text) Then
com_commune.AddItem Trim$(cp.ville)
End If
Next i
Close
Me.MousePointer = 0
Pour la saisie d'une commune =
Private Sub com_commune_LostFocus()
If ch_cp% = 1 Then Exit Sub
com_cp.clear
com_commune.clear
com_commune.text = t_ville.text
Me.MousePointer = 11
Open App.Path & "\Codepos.txt" For Random As #1 Len = Len(cp)
nb_cp = LOF(1) / Len(cp)
For i = 1 To nb_cp
Get #1, i, cp
If Trim$(Left$(cp.ville, 40)) = Trim$(UCase$(com_commune.text))
Then
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
Ledev
François ROLAND wrote:
Bonjour
Actuellement dans une appli, j'utilise un fichier de code postaux.
Pour faire une recherche, Je rentre un code, et je compare dans le fichier jusqu'a trouver toutes les communes qui correspondent.
Pas sorcier.
En revanche, j'aimerai que cet fonction puisse etre utiliser dans plusieurs applications. Pour eviter de retaper (malgrès les copier coller) tout le code, et surtout pour alleger, j'aimerai créer soit un module de class, soit une DLL.
Malheureusement, mes copétences s'arretent avant ça.
Si qqn pouvait me guider dans cette démarche. Bien entendu, je ne suis pas pressé pour la réponse
Ci joint le code que j'utilise actuellement:
Pour commencer, crée un projet de type DLL ActivX. Dedans, vous devriez avoir un module de classe par défault nommé class1, nommée le par exemple CodePostal. Ensuite dedans, crée les fonctions:
Public Function MaFonction(MonArg as string) as string 'Code permettant de retrouvée le résultat de la fonctions avec le/les arguments(sa pourrai être une commune avec le code postal en argument pas exemple). ... 'Enfin, une fois la valeur trouvée, retourner la comme une fonction ordinaire: MaFonction=Resultat end function
Ainsi, pour faire votre module d'objet, dans votre cas, ne vous occupée pas que c'est un module d'objet. Utiliser-le comme un module ordinaire(placez les function/sub). Et ensuite, les functions/sub aparaîtrons comme des methodes tout a fait ordinaires dans vos applications.
Pour débuguer la Dll, plusieurs solutions: -La lancée, lancée une nouvelle instance de Vb et l'appellez comme ci est avait été compiler -Mais moi, celle que j'utilise plus généralement, c'est de crée un groupe de projet. Ainsi dans le second projet vous référencez le 1er(projet/référence) et vous pouvez l'utilisée comme si elle était compilé.
Voilà, a+.
François ROLAND wrote:
Bonjour
Actuellement dans une appli, j'utilise un fichier de code postaux.
Pour faire une recherche, Je rentre un code, et je compare dans le
fichier jusqu'a trouver toutes les communes qui correspondent.
Pas sorcier.
En revanche, j'aimerai que cet fonction puisse etre utiliser dans
plusieurs applications. Pour eviter de retaper (malgrès les copier
coller) tout le code, et surtout pour alleger, j'aimerai créer soit
un module de class, soit une DLL.
Malheureusement, mes copétences s'arretent avant ça.
Si qqn pouvait me guider dans cette démarche. Bien entendu, je ne
suis pas pressé pour la réponse
Ci joint le code que j'utilise actuellement:
Pour commencer, crée un projet de type DLL ActivX.
Dedans, vous devriez avoir un module de classe par défault nommé class1,
nommée le par exemple CodePostal.
Ensuite dedans, crée les fonctions:
Public Function MaFonction(MonArg as string) as string
'Code permettant de retrouvée le résultat de la fonctions avec le/les
arguments(sa pourrai être une commune avec le code postal en argument pas
exemple).
...
'Enfin, une fois la valeur trouvée, retourner la comme une fonction
ordinaire:
MaFonction=Resultat
end function
Ainsi, pour faire votre module d'objet, dans votre cas, ne vous occupée pas
que c'est un module d'objet. Utiliser-le comme un module ordinaire(placez
les function/sub). Et ensuite, les functions/sub aparaîtrons comme des
methodes tout a fait ordinaires dans vos applications.
Pour débuguer la Dll, plusieurs solutions:
-La lancée, lancée une nouvelle instance de Vb et l'appellez comme ci
est avait été compiler
-Mais moi, celle que j'utilise plus généralement, c'est de crée un
groupe de projet. Ainsi dans le second projet vous référencez le
1er(projet/référence) et vous pouvez l'utilisée comme si elle était compilé.
Actuellement dans une appli, j'utilise un fichier de code postaux.
Pour faire une recherche, Je rentre un code, et je compare dans le fichier jusqu'a trouver toutes les communes qui correspondent.
Pas sorcier.
En revanche, j'aimerai que cet fonction puisse etre utiliser dans plusieurs applications. Pour eviter de retaper (malgrès les copier coller) tout le code, et surtout pour alleger, j'aimerai créer soit un module de class, soit une DLL.
Malheureusement, mes copétences s'arretent avant ça.
Si qqn pouvait me guider dans cette démarche. Bien entendu, je ne suis pas pressé pour la réponse
Ci joint le code que j'utilise actuellement:
Pour commencer, crée un projet de type DLL ActivX. Dedans, vous devriez avoir un module de classe par défault nommé class1, nommée le par exemple CodePostal. Ensuite dedans, crée les fonctions:
Public Function MaFonction(MonArg as string) as string 'Code permettant de retrouvée le résultat de la fonctions avec le/les arguments(sa pourrai être une commune avec le code postal en argument pas exemple). ... 'Enfin, une fois la valeur trouvée, retourner la comme une fonction ordinaire: MaFonction=Resultat end function
Ainsi, pour faire votre module d'objet, dans votre cas, ne vous occupée pas que c'est un module d'objet. Utiliser-le comme un module ordinaire(placez les function/sub). Et ensuite, les functions/sub aparaîtrons comme des methodes tout a fait ordinaires dans vos applications.
Pour débuguer la Dll, plusieurs solutions: -La lancée, lancée une nouvelle instance de Vb et l'appellez comme ci est avait été compiler -Mais moi, celle que j'utilise plus généralement, c'est de crée un groupe de projet. Ainsi dans le second projet vous référencez le 1er(projet/référence) et vous pouvez l'utilisée comme si elle était compilé.
Voilà, a+.
François Picalausa
Bonjour/soir,
Une classe, créée sous VB, se compose de plusieurs éléments: -Des Procédures (Sub et functions) -Des propriétés -Parfois des événements (rien que bien particulier en fait...)
En ce qui concerne les procédures que ta classe affichera, il te suffit de les déclarer en Public: Public Sub Toto(Arg1 As Long) 'code End sub
En ce qui concerne les propriétés, on garde souvent une variable qui contient et maintient les données, sinon, Public aussi:
Private m_ValeurPropriété As Long
Public Property Get Age() As Long 'Quand on demande la valeur de Age Age=ValeurPropriété End Property
Public Property Let Age(NewAge As Long) 'Définit la valeur de Age ValeurPropriété = NewAge End Property
En ce qui concerne les events, il faut d'abord les déclarer ensuite les apeller: Event AgeChange(NouvelAge As Long)
'Code Public Property Let Age(NewAge As Long) 'Définit la valeur de Age RaiseEvent AgeChange ValeurPropriété = NewAge End Property
Pour utiliser ta classe, une fois construite, si elle n'est pas dans un ActiveX Dll: Dim MaClasse As NomDeLaClasse Set MaClasse = New NomDeLaClasse
MaClasse.MaPropriété = Valeur MaClasse.MaMéthode ... Set MaClasse = Nothing
Pour employer les events, il te faudra toutefois la créer comme ceci: Private WithEvents MaClasse As NomDeLaClasse
Private Sub Form_Load() Set MaClasse = New NomDeLaClasse End Sub
Private Sub MaClasse_MonEvenement() 'L'événement est appelé ici End Sub
Private Sub Form_UnLoad(Cancel As Integer) Set MaClasse = Nothing 'Détruit l'objet End Sub
Dans un activeX Dll, la méthode de création est généralement identique... si ce n'est que pour la lisibilité, on emploiera plutôt Dim MaClasse As NomDuProjet.NomDeLaClasse Set MaClasse = New NomDuProjet.NomDeLaClasse
Toutefois, les classes d'un ActiveX Dll ont une propriété Instancing qui, définie à Global Multiuse, permet d'utiliser le composant directement sans avoir a passer par As New. Cela ressemble plus à un module.
Si tu ne veux pas toujours partager les données entre les applications, je te conseillerais un module de classe simple dans ton projet. Sinon, pour que tout soit mis à jour à chaque nouvelle version du composant, peu importe l'application, emploie un nouveau composant activeX Dll et n'oublie pas, dans les propriétés du projet, la compatibilité binaire pour que les nouvelles versions soient utilisées par les anciennes applications. -- François Picalausa (MVP VB) FAQ VB : http://faq.vb.free.fr MSDN : http://msdn.microsoft.com
"François ROLAND" a écrit dans le message de news:
Actuellement dans une appli, j'utilise un fichier de code postaux.
Pour faire une recherche, Je rentre un code, et je compare dans le fichier jusqu'a trouver toutes les communes qui correspondent.
Pas sorcier.
En revanche, j'aimerai que cet fonction puisse etre utiliser dans plusieurs applications. Pour eviter de retaper (malgrès les copier coller) tout le code, et surtout pour alleger, j'aimerai créer soit un module de class, soit une DLL.
Malheureusement, mes copétences s'arretent avant ça.
Si qqn pouvait me guider dans cette démarche. Bien entendu, je ne suis pas pressé pour la réponse
Ci joint le code que j'utilise actuellement:
Pla saisie d'un code postal > Private Sub com_cp_LostFocus()
If ch_commune% = 1 Then Exit Sub
com_commune.clear
com_cp.clear com_cp.text = t_cp.text
Me.MousePointer = 11
Open App.Path & "Codepos.txt" For Random As #1 Len = Len(cp) nb_cp = LOF(1) / Len(cp)
For i = 1 To nb_cp
Get #1, i, cp
If Left$(Trim$(cp.code), 5) = Trim$(com_cp.text) Then
com_commune.AddItem Trim$(cp.ville)
End If
Next i
Close
Me.MousePointer = 0
Pour la saisie d'une commune >
Private Sub com_commune_LostFocus()
If ch_cp% = 1 Then Exit Sub
com_cp.clear
com_commune.clear com_commune.text = t_ville.text
Me.MousePointer = 11
Open App.Path & "Codepos.txt" For Random As #1 Len = Len(cp) nb_cp = LOF(1) / Len(cp)
For i = 1 To nb_cp
Get #1, i, cp
If Trim$(Left$(cp.ville, 40)) > Trim$(UCase$(com_commune.text)) Then
com_cp.AddItem Trim$(cp.code)
End If
Next i
Close
Me.MousePointer = 0
Cordialement
Bonjour/soir,
Une classe, créée sous VB, se compose de plusieurs éléments:
-Des Procédures (Sub et functions)
-Des propriétés
-Parfois des événements
(rien que bien particulier en fait...)
En ce qui concerne les procédures que ta classe affichera, il te suffit de
les déclarer en Public:
Public Sub Toto(Arg1 As Long)
'code
End sub
En ce qui concerne les propriétés, on garde souvent une variable qui
contient et maintient les données, sinon, Public aussi:
Private m_ValeurPropriété As Long
Public Property Get Age() As Long 'Quand on demande la valeur de Age
Age=ValeurPropriété
End Property
Public Property Let Age(NewAge As Long) 'Définit la valeur de Age
ValeurPropriété = NewAge
End Property
En ce qui concerne les events, il faut d'abord les déclarer ensuite les
apeller:
Event AgeChange(NouvelAge As Long)
'Code
Public Property Let Age(NewAge As Long) 'Définit la valeur de Age
RaiseEvent AgeChange
ValeurPropriété = NewAge
End Property
Pour utiliser ta classe, une fois construite, si elle n'est pas dans un
ActiveX Dll:
Dim MaClasse As NomDeLaClasse
Set MaClasse = New NomDeLaClasse
MaClasse.MaPropriété = Valeur
MaClasse.MaMéthode
...
Set MaClasse = Nothing
Pour employer les events, il te faudra toutefois la créer comme ceci:
Private WithEvents MaClasse As NomDeLaClasse
Private Sub Form_Load()
Set MaClasse = New NomDeLaClasse
End Sub
Private Sub MaClasse_MonEvenement()
'L'événement est appelé ici
End Sub
Private Sub Form_UnLoad(Cancel As Integer)
Set MaClasse = Nothing 'Détruit l'objet
End Sub
Dans un activeX Dll, la méthode de création est généralement identique... si
ce n'est que pour la lisibilité, on emploiera plutôt
Dim MaClasse As NomDuProjet.NomDeLaClasse
Set MaClasse = New NomDuProjet.NomDeLaClasse
Toutefois, les classes d'un ActiveX Dll ont une propriété Instancing qui,
définie à Global Multiuse, permet d'utiliser le composant directement sans
avoir a passer par As New.
Cela ressemble plus à un module.
Si tu ne veux pas toujours partager les données entre les applications, je
te conseillerais un module de classe simple dans ton projet.
Sinon, pour que tout soit mis à jour à chaque nouvelle version du composant,
peu importe l'application, emploie un nouveau composant activeX Dll et
n'oublie pas, dans les propriétés du projet, la compatibilité binaire pour
que les nouvelles versions soient utilisées par les anciennes applications.
--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com
"François ROLAND" <francois.roland3@wanadoo.fr> a écrit dans le message
de news:uB6mMbeWDHA.3404@tk2msftngp13.phx.gbl
Actuellement dans une appli, j'utilise un fichier de code postaux.
Pour faire une recherche, Je rentre un code, et je compare dans le
fichier jusqu'a trouver toutes les communes qui correspondent.
Pas sorcier.
En revanche, j'aimerai que cet fonction puisse etre utiliser dans
plusieurs applications. Pour eviter de retaper (malgrès les copier
coller) tout le code, et surtout pour alleger, j'aimerai créer soit
un module de class, soit une DLL.
Malheureusement, mes copétences s'arretent avant ça.
Si qqn pouvait me guider dans cette démarche. Bien entendu, je ne
suis pas pressé pour la réponse
Ci joint le code que j'utilise actuellement:
Pla saisie d'un code postal >
Private Sub com_cp_LostFocus()
If ch_commune% = 1 Then Exit Sub
com_commune.clear
com_cp.clear
com_cp.text = t_cp.text
Me.MousePointer = 11
Open App.Path & "Codepos.txt" For Random As #1 Len = Len(cp)
nb_cp = LOF(1) / Len(cp)
For i = 1 To nb_cp
Get #1, i, cp
If Left$(Trim$(cp.code), 5) = Trim$(com_cp.text) Then
com_commune.AddItem Trim$(cp.ville)
End If
Next i
Close
Me.MousePointer = 0
Pour la saisie d'une commune >
Private Sub com_commune_LostFocus()
If ch_cp% = 1 Then Exit Sub
com_cp.clear
com_commune.clear
com_commune.text = t_ville.text
Me.MousePointer = 11
Open App.Path & "Codepos.txt" For Random As #1 Len = Len(cp)
nb_cp = LOF(1) / Len(cp)
For i = 1 To nb_cp
Get #1, i, cp
If Trim$(Left$(cp.ville, 40)) > Trim$(UCase$(com_commune.text)) Then
Une classe, créée sous VB, se compose de plusieurs éléments: -Des Procédures (Sub et functions) -Des propriétés -Parfois des événements (rien que bien particulier en fait...)
En ce qui concerne les procédures que ta classe affichera, il te suffit de les déclarer en Public: Public Sub Toto(Arg1 As Long) 'code End sub
En ce qui concerne les propriétés, on garde souvent une variable qui contient et maintient les données, sinon, Public aussi:
Private m_ValeurPropriété As Long
Public Property Get Age() As Long 'Quand on demande la valeur de Age Age=ValeurPropriété End Property
Public Property Let Age(NewAge As Long) 'Définit la valeur de Age ValeurPropriété = NewAge End Property
En ce qui concerne les events, il faut d'abord les déclarer ensuite les apeller: Event AgeChange(NouvelAge As Long)
'Code Public Property Let Age(NewAge As Long) 'Définit la valeur de Age RaiseEvent AgeChange ValeurPropriété = NewAge End Property
Pour utiliser ta classe, une fois construite, si elle n'est pas dans un ActiveX Dll: Dim MaClasse As NomDeLaClasse Set MaClasse = New NomDeLaClasse
MaClasse.MaPropriété = Valeur MaClasse.MaMéthode ... Set MaClasse = Nothing
Pour employer les events, il te faudra toutefois la créer comme ceci: Private WithEvents MaClasse As NomDeLaClasse
Private Sub Form_Load() Set MaClasse = New NomDeLaClasse End Sub
Private Sub MaClasse_MonEvenement() 'L'événement est appelé ici End Sub
Private Sub Form_UnLoad(Cancel As Integer) Set MaClasse = Nothing 'Détruit l'objet End Sub
Dans un activeX Dll, la méthode de création est généralement identique... si ce n'est que pour la lisibilité, on emploiera plutôt Dim MaClasse As NomDuProjet.NomDeLaClasse Set MaClasse = New NomDuProjet.NomDeLaClasse
Toutefois, les classes d'un ActiveX Dll ont une propriété Instancing qui, définie à Global Multiuse, permet d'utiliser le composant directement sans avoir a passer par As New. Cela ressemble plus à un module.
Si tu ne veux pas toujours partager les données entre les applications, je te conseillerais un module de classe simple dans ton projet. Sinon, pour que tout soit mis à jour à chaque nouvelle version du composant, peu importe l'application, emploie un nouveau composant activeX Dll et n'oublie pas, dans les propriétés du projet, la compatibilité binaire pour que les nouvelles versions soient utilisées par les anciennes applications. -- François Picalausa (MVP VB) FAQ VB : http://faq.vb.free.fr MSDN : http://msdn.microsoft.com
"François ROLAND" a écrit dans le message de news:
Actuellement dans une appli, j'utilise un fichier de code postaux.
Pour faire une recherche, Je rentre un code, et je compare dans le fichier jusqu'a trouver toutes les communes qui correspondent.
Pas sorcier.
En revanche, j'aimerai que cet fonction puisse etre utiliser dans plusieurs applications. Pour eviter de retaper (malgrès les copier coller) tout le code, et surtout pour alleger, j'aimerai créer soit un module de class, soit une DLL.
Malheureusement, mes copétences s'arretent avant ça.
Si qqn pouvait me guider dans cette démarche. Bien entendu, je ne suis pas pressé pour la réponse
Ci joint le code que j'utilise actuellement:
Pla saisie d'un code postal > Private Sub com_cp_LostFocus()
If ch_commune% = 1 Then Exit Sub
com_commune.clear
com_cp.clear com_cp.text = t_cp.text
Me.MousePointer = 11
Open App.Path & "Codepos.txt" For Random As #1 Len = Len(cp) nb_cp = LOF(1) / Len(cp)
For i = 1 To nb_cp
Get #1, i, cp
If Left$(Trim$(cp.code), 5) = Trim$(com_cp.text) Then
com_commune.AddItem Trim$(cp.ville)
End If
Next i
Close
Me.MousePointer = 0
Pour la saisie d'une commune >
Private Sub com_commune_LostFocus()
If ch_cp% = 1 Then Exit Sub
com_cp.clear
com_commune.clear com_commune.text = t_ville.text
Me.MousePointer = 11
Open App.Path & "Codepos.txt" For Random As #1 Len = Len(cp) nb_cp = LOF(1) / Len(cp)
For i = 1 To nb_cp
Get #1, i, cp
If Trim$(Left$(cp.ville, 40)) > Trim$(UCase$(com_commune.text)) Then