Information sur les .ctl

Signaler
Messages postés
264
Date d'inscription
mercredi 16 avril 2003
Statut
Membre
Dernière intervention
23 mars 2012
-
Messages postés
116
Date d'inscription
mardi 8 août 2006
Statut
Membre
Dernière intervention
29 septembre 2013
-
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

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

Messages postés
14811
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
24 juillet 2021
156
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>
Messages postés
264
Date d'inscription
mercredi 16 avril 2003
Statut
Membre
Dernière intervention
23 mars 2012

merci a vous
Messages postés
116
Date d'inscription
mardi 8 août 2006
Statut
Membre
Dernière intervention
29 septembre 2013

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
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
57
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
Messages postés
264
Date d'inscription
mercredi 16 avril 2003
Statut
Membre
Dernière intervention
23 mars 2012

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
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
57
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
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
http://www.vbfrance.com/codes/TUTORIEL-OCX-BASIQUE/32545.aspx




Renfield





Admin CodeS-SourceS

- MVP Visual Basic
Messages postés
116
Date d'inscription
mardi 8 août 2006
Statut
Membre
Dernière intervention
29 septembre 2013

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