Dimention d'un control

cs_magicgus Messages postés 206 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 14 septembre 2011 - 2 sept. 2011 à 22:40
cs_magicgus Messages postés 206 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 14 septembre 2011 - 14 sept. 2011 à 23:18
Bonjour à tous,

Je me fait pas mal de control ocx pour me simplifier et standardisé la création de mes apps.
Mais une chose que j'aimerais savoir faire : dépasser la limite de taille maximum (dimention) d'un usercontrol.

Pourquoi ? Exemple ->

Si je fait une espèce de control liste évolué, chaque item ayant plusieurs controls (picturebox, label, bouton,etc...), quand j'ajoute un item pas de problème : je génère touts les nouveaux controls dynamiquement, par contre, lors du scroll dans la liste, ou du redimensionnement de celle ci, je doit réaffecter des propriété de positionnement à tout les item (sa prend un temps monstre a l’exécution si j'ai beaucoup d'item...

Le début de la solution (au moins pour le problème de scroll) serait de pouvoir créer tout ces items sur un unique usercontrol qui serait alors le seul a se déplacer dans son control conteneur lors du scroll...

ça éviterai aussi cette foutu saccade lié au repaint de chacun des controls qui forment les items....

Donc comment puis-je faire pour dépasser la taille limite ? Merci

Guillaume

13 réponses

cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
3 sept. 2011 à 14:01
Salut

Pas de souvenir de limitation.
Seule limitation : celle de la taille de l'écran (ou des écrans) pour les formes.
Je viens de faire l'essai avec un UserControl fourni en standard avec VB6 : Colorful qui dessine un cercle jaune sur fond orange.
Dans le Form_Resize, je redimensionne le UserControl.
Quand ma forme s'étend sur mes deux écrans, le UC suit bien toute la surface.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_magicgus Messages postés 206 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 14 septembre 2011
3 sept. 2011 à 14:59
Salut Jack

Je ne parle pas de tirer un control sur l'espace de 2 écrans, mais beaucoup plus grands, sans limite.
Pour info, j'arrive a avoir l’équivalent de 15 fois la hauteur de l’écran maximum, environ


Guillaume
0
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
3 sept. 2011 à 19:20
Ok
Les dimensions d'une forme étant limitée elle même à la dimension de l'espace de travail (écrans) ET les contrôles qu'elle possède ne pouvant dépasser la taille de la forme ... peu de chance.

Peut-être regarder du côté <des espaces de travail virtuels>; il y a peut-être des idées à prendre
0
cs_magicgus Messages postés 206 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 14 septembre 2011
5 sept. 2011 à 16:01
Yep!

J'ai jeter un oeil et je ne pense pas que cela me soit d'un grand secoure mais bon merci tout de même pour l'info....

N'y aurait-il pas moyen en faisant du subclassing ? En tout cas perso je n'y connait que dale...

Guillaume
0

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

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 228
5 sept. 2011 à 17:47
Bonjour,
ce qu'il est toujours possible de faire, c'est d'insérer dans un container A (cadre ou picturebox) une picturebox B beaucoup plus grande qui, elle, peut dépasser la hauteur de l'écran.
Seule limite pour sa taille : celle d'un integer (mais il suffit alors de changer de scalemode pour que cette limite n'en soit plus une vraiment gênante).
C'est dans la pictureBox B, que l'on place les contrôles dont à à besoin. On associe une scrollbar verticale à la picturebox A et on agit sur cette scrollbar pour faire "dérouler" la picturebox B (en faisant simplement varier son top, négativement pour aller vers le bas et positivement pour aller vers le haut).
C'est du boulot, certes, mais pas insurmontable.


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 228
5 sept. 2011 à 17:56
Mais attends ===>> je vois en te relisant qu'il ne s'agit que de la dimension d'un seul contrôle sur un Form (ton ocx).
Si c'est cela, c'est assez simple : mets en scalemode vbpixels son form le contenant et tu pourras donner à ton contrôle "liste" une hauteur ern pixels jusqu'à la limite d'un integer, mais en pixels !


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
cs_magicgus Messages postés 206 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 14 septembre 2011
9 sept. 2011 à 19:55
@ucfoutu:

Tout d'abord merci pour ta réponse, malheureusement je savait déjà que je pouvait profiter de cette technique mais elle n'est à mon goût pas suffisante pour ce que je veut faire...
Je pense que je doit continuer à chercher du coté du subclassing car là je n'ai encore rien trouvé de convainquant. Pour ce qui est de placer un picture box dans un autre et de gerer avec un scroll bar c'est déjà le cas, sauf que pour le picture box interne j'en ai en fait un par item les un par dessus les autres, pour ne pas avoir de limitation justement, mais à force ça rame pour le defilement car il faut que je fasse une sacré boucle pour tous les déplacer d'où le temps de traitement : au bout de quelques centaines d'items ça sacade un peu ;)

Merci quand même.


Guillaume
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 228
9 sept. 2011 à 22:30
sauf que pour le picture box interne j'en ai en fait un par item les un par dessus les autres, pour ne pas avoir de limitation justement, mais à force ça rame pour le defilement car il faut que je fasse une sacré boucle pour tous les déplacer

c'est là, pardonne-moi, que je ne te comprends pas ... Surtout en ce qui concerne le fait de les "placer les uns au dessus des autres" et le fait de faire "un par item" !
Cela commence à sentir l'usine à gaz, là (et sans que l'on en cerne le propos exact).
Peux-tu expliquer en détail et avec précision ?


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
cs_magicgus Messages postés 206 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 14 septembre 2011
12 sept. 2011 à 20:25
Ouais effectivement c’était contient que c'était peut être pas très clair...

Visualisons ça :

Clique ici pour voir un screen de ma liste, bien entendu tous les contrôles ne sont pas chargés dans chaque items mais il faut s'imaginer que si.

Schématiquement ça donne un truc dans ce style, et voilà ce que je voulais dire par "au dessus" : dans l'axe Y en fait...

Et donc pour chaque redimensionnement, je doit traité tout les items et leurs contrôles ce qui bouffe pas mal de ressources...

Guillaume
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 228
12 sept. 2011 à 23:02
Ahhhhhh !
Tu m'en diras tant !

Je dois dire avec force que tout s'éclaire maintenant !
C'est trop fort pour moi.
Bon ne chance !



____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
cs_magicgus Messages postés 206 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 14 septembre 2011
14 sept. 2011 à 20:30
Ok ;)

Ben en tout cas merci de t'être interessé à mon problème.


Guillaume
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 228
14 sept. 2011 à 21:26
Il n'y a pas de quoi.
Ce fut un réel plaisir.

Tu sais quoi ? ===>>
1) le langage informatique est encore plus (mille fois plus) rigoureux que le langage naturel.
2) en informatique comme dans n'importe quel autre domaine :
--- on ne peut rien concevoir sans d'abord cerner ce que l'on veut concevoir
--- lorsque l'on a "cerné", on sait en général dire aisément ce que l'on veut
Mais je suis certain de ce que tu es prêt à faire les choses dans le bon ordre, à savoir :
1) "cerner" ce que tu veux
2) t'efforcer de l'exprimer d'abord (et au moins) clairement en langage naturel
3) ensuite (et seulement ensuite) t'efforcer de "transposer" ta pensée dans un langage encore plus rigoureux (celui de quelque langage informatique que ce soit)
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
cs_magicgus Messages postés 206 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 14 septembre 2011
14 sept. 2011 à 23:18
Merci pour le conseil


Guillaume
0