Information sur les .ctl

DraaFil Messages postés 264 Date d'inscription mercredi 16 avril 2003 Statut Membre Dernière intervention 23 mars 2012 - 18 oct. 2006 à 02:41
JessicaR44 Messages postés 116 Date d'inscription mardi 8 août 2006 Statut Membre Dernière intervention 29 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.


 


Merci


DraaFil

9 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
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 
 

<small> Coloration syntaxique automatique [AFCK] </small>
       

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.

J'espere que tu es un peu plus avance.

@+,   Ju£i?n

0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
18 oct. 2006 à 12:23
Bonjour

Note, tu peux utiliser un .CTL (usercontrol) directement codé dans un Exe standard, sans passer par un OCX (pour VB6 au moins).

Il est plus facile de batiser quelqu'un que de la convertir. (surtout en programmation)
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)

<fon></fon>
0
DraaFil Messages postés 264 Date d'inscription mercredi 16 avril 2003 Statut Membre Dernière intervention 23 mars 2012
18 oct. 2006 à 14:22
merci a vous
0
JessicaR44 Messages postés 116 Date d'inscription mardi 8 août 2006 Statut Membre Dernière intervention 29 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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
23 oct. 2006 à 09:26
Salut  835709 JessicaR44

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 
 

<small> Coloration syntaxique automatique [AFCK] </small>
       
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

@+,   Ju£i?n
0
DraaFil Messages postés 264 Date d'inscription mercredi 16 avril 2003 Statut Membre Dernière intervention 23 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.

Merci
DraaFil
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
24 oct. 2006 à 08:45
Salut,
DraaFil peu etre devrais tu nous en dire un peu plus alors si tu souhaite que l'on t'aide.
Il y a plein de moyen de faire un bouton.

Un Shape (ou plusieur) pour la forme + un label pour le Titre du bouton...

@+,   Ju£i?n
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
24 oct. 2006 à 09:20
http://www.vbfrance.com/codes/TUTORIEL-OCX-BASIQUE/32545.aspx




Renfield





Admin CodeS-SourceS

- MVP Visual Basic
0
JessicaR44 Messages postés 116 Date d'inscription mardi 8 août 2006 Statut Membre Dernière intervention 29 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
0
Rejoignez-nous