Label invisible [Résolu]

Signaler
Messages postés
940
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
3 février 2011
-
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
-
Bonjour à tous,

Je viens de créé un control assez simple.
Ce control est formé uniquement de cadre shape
Et n'a qu'une fonction event resize.

Le problème, c'est que je ne peux pas écrire de label dessus

Ils sont toujours derrière, même si je mets "bring to back"
ou "send to back" à l'usercontrol.

Par contre les boutons et autre, apparaissent bien dessus.
Comment faire pour que le label s'écrive bien dessus?

Merci pour votre aide
TBBUIM

19 réponses

Messages postés
4525
Date d'inscription
dimanche 29 septembre 2002
Statut
Modérateur
Dernière intervention
22 avril 2019
9
Le plus simple est d'utiliser un control text ! Car les label sont windowless de plus ils sont geré differement d'un "vrais" controle

@+

E.B.
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
1) que veux dire dessus pour toi ? : par-dessus ou dedans ?
2) sans le code de cet Ocx, ma foi... je ne vois pas comment on pourrait deviner où est la maladresse ...
3) un ocx qui ne serait qu'un contrôle Shape, ma  foi....  me laisse quelque peu perplexe !
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
120
Le plus simple reste de dessiner tes shapes "à la main" par code, et du y imprime ton texte directement dans le usercontrol, ca bouffera moins de ressources pour rien
Messages postés
940
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
3 février 2011
9
lol jm, tu te poses trop de question ma foi.
Ya pas de maladresse dans le code, vu qyen a pas
Je pense qu'il doit y avoir une option ou un truc à faire que je ne connais pas
C pourquoi je pose la question...

Qd je dis dessus c par dessus, c posé dessus sans en faire partie, c... je sais pas, pas comme une frame, ça te suffit comme description?

voici mon code, qd je dis que c simple, c juste pour ne pas à avoir à faire des copier coller sans arrêt des 2 shapes
Option Explicit
Event Resize()
Private Sub UserControl_Resize()
    Shape1.width = Usercontrol.width
    Shape2.width = Usercontrol.width
    RaiseEvent Resize
End Sub

Dark, si je fais ça, c justement pour pas me saouler à écrire du code ou faire des copier coller
Ca prend peut être un peu de erssource, mais bon, ça va...

J'ai plus qu'à faire des ocx de label pour pouvoir écrire dessus lol

Merci de votre aide qd mm les gars...
TBBUIM
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
Houla !....ami...


comment celà ?



"Ya pas de maladresse dans le code, vu qyen a pas"

un ocx sans code le régentant ? C'est quoi, exactement ?
Messages postés
940
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
3 février 2011
9
Enfin un gars sérieux  qui sait lire et qui comprend le français
J'avais vu qu'yavait un pb qu'avec les labels
Et je me demandais juste pourquoi et/ou sinon comment faire pour écrire dessus
Merci bcp EB
TBBUIM
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
120
rà là là, et après on dit que vb est lent ! faire un usercontrol pour pouvoir mettre uniquement 2 shape et un label...
Messages postés
940
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
3 février 2011
9
lol, ouais ouais, je sais, je sais, mais c pas si lent que ça
Avec les Proc et CG de malades qui sont de plus en plus présentes
J'pense qu'on peut se le permettre, non? ^o)
Pour ma part, je ne vois pas de ralentissement notable
Et je ne suis pas de ceux qui disent que VB est lent
PS:
Qui sait qui est chaud pour nous faire un addin permettant de faire un undo sur le mouvement d'un control en mode création?
EB? allez, jte sens en forme, tu t'ennuis, à faire tes jeux
Merci d'y penser

TBBUIM
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
120
Tu peux toujours locker les contrôles une fois que tu leur a donné leur position finale, ca évite justement de les déplacer par mégarde.

C'est sûr, sur un petit prog, faire ce genre de chose n'apportera pas forcément de ralentissements perceptibles, mais c'est une mauvaise habitude de dire : avec les processeurs de maintenant, on est à l'aise, on peut consommer du CPU (ou de la mémoire) sans faire gaffe ! Car c'est au moment où l'on se rend compte que son prog rame qu'on se dit, à ben zut alors, comme ca se fait qu'il prend 50 Mo en mémoire, et qu'il rame autant ?

vb est un langage rapide si on sais l'utiliser comme il faut, mais il permet tellement de chose qu'on en profite tous (moi le premier) pour coder avec les pieds, et bouffer des ressources sans faire gaffe !

Surtout que dans ton cas, c'est vraiment pas sorcier de mettre une dizaine de propriétés, et quelques lignes de codes dans l'événement paint de ton usercontrol afin qu'il ai toutes les propriétés de deux shapes avec un label dessus.
Messages postés
4525
Date d'inscription
dimanche 29 septembre 2002
Statut
Modérateur
Dernière intervention
22 avril 2019
9
Dark à raison si c'est juste une question de design le mieu est de dessiner ton controle a la "main" un print + un line au moment du resize et voila. Bon apres chacun fait ce qu'il veux :p

@+

E.B.
Messages postés
940
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
3 février 2011
9
Exact, Dark à raison (cf: "...ouais ouais je sais je sais...")
Mais ce n'est pas juste pour le design
C'est surtout pour ne pas à avoir à le faire à la main à chaque fois
TBBUIM
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
D'autant que si je m'en tiens au tout premier message, cet ocx ne serait rien d'autre qu'une "Shape" !!!!!

Nom de nom !
Une simple sous-routine avec des paramètres qu'on lui envoie.... et l'ulilisation de line avec B et au besoin F ... et la voilà dessinée à la demande,  à peu de frais, sa "Shape" !
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
120
mais rien ne t'empêche de la mettre dans un usercontrol justement ce code là, et ainsi tu mets tes "shapes et labels" (ton usercontrol en fait) là où tu veux et le nombre de fois que tu veux, mais ce sera plus efficace (et apparement plus simple) de le faire par code au lieu de mettre deux shapes et un label dans ton usercontrol directement. En plus l'avantage de le faire par code : tu peux le personnaliser à volonté (couleurs, polices, effet 3D, clignottement, explosion, bombe nucléaire, météorite qui s'écrase) en lui ajoutant les propriétés que tu veux.
Messages postés
940
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
3 février 2011
9
Et comment changer la couleur de fond du shape dessiné par line?

De plus, j'ai rajouté des propriétés (GET et LET) au ctl pour que je puisse paramétrer la fontname, size, color, ainsi que la couleur de fond du shape. Je vois tout ce que j'ai rajouté en mode création dans les propriétés du control.
Donc je peux maintenant tout paramétrer sans écrire une seule ligne de code.

Donc je ne vois pas trop où vous voulez en venir...
Auriez-vous un exemple?
TB
BUIM
Messages postés
4525
Date d'inscription
dimanche 29 septembre 2002
Statut
Modérateur
Dernière intervention
22 avril 2019
9
Surtout meteorite qui s'ecrase d'ailleur :p

E.B.
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
120
C'est pourtant pas compliqué :
    Me.Line (0, 0)-(Me.ScaleWidth, Me.ScaleHeight), vbRed, BF
    Me.CurrentX = 10
    Me.CurrentY = 10
    Me.Print "toto"

Tu n'a plus qu'à remplacer le vbRed par ta couleur de fond, le toto par le caption de ton label, etc.
Si tu veux faire des formes plus complexes : Me.circle ou les API Windows (roundrect par exemple)
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
120
Note : si tu as fait les property get/set (avec les writeproperties qui s'imposent...), alors tu as fait 95% du travail ! Il te reste plus qu'à faire les 5% qui consiste à écrire le code pour l'événement paint... ca serait bête de s'arrêter en si bon chemin ! (cf le code que je t'ai donné plus haut)
Messages postés
940
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
3 février 2011
9
Ok c'est fait. Merci de votre aide les gars. :D

Pour en revenir à l'addin:
c vrai qu'on peut verrouiller, mais quand on est en train de créer une form, le moindre petit drag'n'drop de travers et on est bon pour replacer pas mal de controles des fois :s
Je me demande bien pourquoi VB6 ne permet pas l'undo du déplacement.
M'enfin, si vous avez le temps, je sais que ce serait une très bonne source, super utile à tout le monde :p
Pour ma part, je n'ai pas encore le niveau et surtout le courage de m'y ateler, sinon, jl'aurais déjà mis sur VBFrance ;) @+
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
Ouf !
Enfin du sage !

Alors :

Cher 55855 tbbuim1 ,

Tu n'auras pas été sans remarquer que les sources déposées par les plus "avertis" ne sont pas là pour permettre la mise en oeuvre de fantaisies ni pour "faire dans la dentelle".
Tu auras (je l'espère) constaté que ces sources ciblaient de véritables besoins partagés par un ensemble......
Il est vrai que certains ont des besoins curieux et qu'ils espèrent que les "avertis" se prêteront à leur jeu... Ils l'espèrent car, à la fois,
- ils "vagabondent" un peu partout (sans jamais créer et vouloir eux-mêmes créer... décrétant bien volontiers qu'ils ne créent pas car ils ne savent pas le faire eux-mêmes... mais en ajoutant que, par contre : ils ont EUX d'excellentes idées qu'ils "mettent gracieusement" à la disposition d'autres - les idées uniquement, bien entendu -, afin que d'autres se précipitent sur ces magnifiques idées pour les mettre en oeuvre ...!)
- ils ne possèdent pas les "attributs" nécessaires pour se lancer dans LEUR aventure

La question qui se pose à toi, =55855 tbbuim1 , est donc celle-ci :
crois-tu vraiment que les "avertis" ont envie d'être de simples mercenaires ? Ne crois-tu pas qu'ils le sont à ce point  (avertis), qu'ils refusent quant à eux de "sautiller" de n'importe quelle manière sur le jeu de marelle qui aurait été tracé par un "non averti" ?
Relis donc Monsieur de La Fontaine (je te conseille "la mouche du coche")

A méditer...