DraaFil
Messages postés264Date d'inscriptionmercredi 16 avril 2003StatutMembreDernière intervention23 mars 2012
-
18 oct. 2006 à 02:41
JessicaR44
Messages postés116Date d'inscriptionmardi 8 août 2006StatutMembreDernière intervention29 septembre 2013
-
24 oct. 2006 à 16:14
Bonjour à tous,
Cela fait un moment que je me demande comment fonctionnent les .ctl (fichier utiliser pour changer ou creer les controle). Si vous savez comment faire ou m'expliquer ce que je dois chercher et me fournir un coes sources.
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 18 oct. 2006 à 10:14
Salut,
(Que les pros me corrigent): Les .ctl sont des UserControl = > qui peuvent devenir par la suite des .OCX
Cela te permet de réutiliser des objets que tu pourrais utiliser beaucoup.
Exemple. tu veux un textbox ou l'on ne puisse que saisir des chiffres.
Lance VB6 et au lieu de choisir Exe Strandard au départ choisi Contrôle ActiveX.
Si tu avais choisi ne plus afficher cette boite de dialogue alors Ctrl + N
(On ne renomme rien)
Une fois que tu as un projet Control Active X Alors tu as un objet UserControl1
Place un textbox dessus et ensuite colle ce code.
Option Explicit
'---------------------------------------------------------------------------------------
' Procedure : Text1_KeyPress
' Purpose : Gere la saisie du textbox
'---------------------------------------------------------------------------------------
'
Private Sub Text1_KeyPress(KeyAscii As Integer)
'Si la touche pressée n'est ni back ni entre alors
If (KeyAscii = vbKeyReturn) Or (KeyAscii = vbKeyBack) Then Exit Sub
'Si ce n'est pas un chiffre annule la touche
If Not IsNumeric (Chr(KeyAscii)) Then KeyAscii = 0
End Sub
'---------------------------------------------------------------------------------------
' Procedure : UserControl_Resize
' Purpose : PErmet de mettre la textbox a la meme taille que le Control
'---------------------------------------------------------------------------------------
'
Private Sub UserControl_Resize()
Text1.Width = UserControl.Width
Text1.Height = UserControl.Height
Text1.Top = 0
Text1.Left = 0
End Sub
Pour teste ceci ajoute un projet
Menu Fichier => Ajouter un projet = > Exe Standard
Dans l'explorateur a droite Clicke droit de la souris sur Projet2 (Projet2) Choisis alors Projet de démarrage
Ferme toute les fenetre de l'ide (pas les projet)
Ouvre la feuille du projet 2
Dans les objets a inserer (General) tu as a la fin un nouvel objet UserControl1.
place le dans ta feuille et appui sur F5
Tu ne pourras alors pas entrer de lettre dans le textbox.
Tu peux ainsi en placer plusieur il réagiront tous de la meme facon.
Tu viens de créer un control réutilisable. (.ctl)
Si tu veux par la suite pouvoir faire référence a ce controle sans avoir le .ctl il te suffit de générer le .OCX
Pour cela click sur Projet1
puis Fichier => Creer Projet1.ocx .
Je le place dans C:\WINNT\SYSTEM32\
Ensuite Menu démarrer de windows puis executer : RegSvr32 C:\WINNT\SYSTEM32\Projet1.ocx
A partir de la normalement si tu ouvre un nouveau porjet VB6 tu pourra choisir cet OCX pour le réutiliser
Il te suffira de faire Menu Projet => Composants => et de cherche dans la liste Projet1
Tu pourras alors l'insérer dans les feuille.
Ceci etait un PETIT exemple de .Ctl => OCX. bien sur tu peux en faire des plus expert avec des propriétés qui leur sont propres et qui seront visible dan sl'interface de VB6 mais je pense que pour un début c'est pas mal.
JessicaR44
Messages postés116Date d'inscriptionmardi 8 août 2006StatutMembreDernière intervention29 septembre 2013 21 oct. 2006 à 21:02
Bobjour Julien,
Je viens d'essayer ce que tu as expliqué à DraaFil. Ca marche super, mais ça laisse un goût de trop peu !! Tu dis:
"bien sur tu peux en faire des plus expert avec des propriétés qui leur sont propres et qui seront visible dan sl'interface de VB6" . Comment fait-on la suite ? Par exemple, ajouter une méthode ou une propriété ?? Ca m'intéresse au plus haut point !!!!
J'attends de tes nouvelles avec impatience (sans vouloir te presser bien sûr (ou si peu)).
Jessica
Vous n’avez pas trouvé la réponse que vous recherchez ?
Pour une propriété par exemple (la longueur) il te suffit d'ajouter ceci
'---------------------------------------------------------------------------------------
' Procedure : TailleLarge
' Purpose : Donne la taille au controle
'---------------------------------------------------------------------------------------
'
Public Property Let TailleLarge(pTaille As Integer)
UserControl.Width = pTaille
End Property
'---------------------------------------------------------------------------------------
' Procedure : TailleLarge
' Purpose : Récupère la taille du controle
'---------------------------------------------------------------------------------------
Public Property Get TailleLarge() As Integer
TailleLarge = UserControl.Width
End Property
Si tu souhaite qu'une propriété soit en Lecture Seule alors il te suffit de virer le Property Let
Si au contraire tu souhaite qu'elle ne soit qu en Ecriture seule alors vire le Property Get
Si tu veux utiliser un propriété représentantt un objet => Alors utilise regarde du coté de Property Set
Pour ce qui est de méthode, procédures, tu peux faire comme pour le reste il suffit pour etre utilisable depuis une feuille qu'elles soit Public
DraaFil
Messages postés264Date d'inscriptionmercredi 16 avril 2003StatutMembreDernière intervention23 mars 2012 23 oct. 2006 à 18:59
merci en pssant pour vos reponse. Je me demandais comment, exemple changer la forme du bouton. j'ai regarder plusieurs solution et je ne comprend pas comment commence a faire ce bouton.
JessicaR44
Messages postés116Date d'inscriptionmardi 8 août 2006StatutMembreDernière intervention29 septembre 2013 24 oct. 2006 à 16:14
Un grand merci pour ces renseignements: je consulte les tutos et je m'y mets..
Je reviendrai très probablement à la charge avec ces .ctl, mais il faut d'abord que je comprenne et que j'en mette en oeuvre.
j'ai trouvé au autre tutorial: http://www.vbfrance.com/tutorial.aspx?id=10 Merci encore à jrivet et Renfield.
Jessica