Label invisible

Résolu
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 - 16 janv. 2007 à 11:53
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 - 16 janv. 2007 à 19:58
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

cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
16 janv. 2007 à 13:56
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.
3
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
16 janv. 2007 à 13:32
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 !
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
16 janv. 2007 à 13:32
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
0
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
16 janv. 2007 à 13:50
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
0

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

Posez votre question
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
16 janv. 2007 à 13:55
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 ?
0
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
16 janv. 2007 à 14:03
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
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
16 janv. 2007 à 14:13
rà là là, et après on dit que vb est lent ! faire un usercontrol pour pouvoir mettre uniquement 2 shape et un label...
0
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
16 janv. 2007 à 14:22
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
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
16 janv. 2007 à 14:42
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.
0
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
16 janv. 2007 à 14:46
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.
0
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
16 janv. 2007 à 15:11
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
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
16 janv. 2007 à 15:25
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" !
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
16 janv. 2007 à 15:28
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.
0
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
16 janv. 2007 à 15:36
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
0
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
16 janv. 2007 à 15:36
Surtout meteorite qui s'ecrase d'ailleur :p

E.B.
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
16 janv. 2007 à 16:32
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)
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
16 janv. 2007 à 16:34
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)
0
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
16 janv. 2007 à 18:44
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 ;) @+
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
16 janv. 2007 à 19:58
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...
0
Rejoignez-nous