CONTRÔLES STYLE XP (16 USERCONTROLS: LISTBOX, OPTION, FRAME, BAR, CHECK, BUTTONS
MadM@tt
Messages postés2167Date d'inscriptionmardi 11 novembre 2003StatutMembreDernière intervention16 juillet 2009
-
17 mai 2007 à 17:38
niczob
Messages postés11Date d'inscriptionlundi 23 mai 2005StatutMembreDernière intervention 4 mars 2010
-
4 mars 2010 à 09:07
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
Et pour des check et option transparents, pour un frame et un command qui acceptent une icone, pour des scolls allant jusqu'à plus de 200 milliards, pour un UpDown inexistant hors Windows Forms 2.0 (non redistribuable)... je suis bien OBLIGE de recoder tout çà !
Si je voulais "avoir du succès" avec une source, j'aurais posté un truc avec "MSN" ou "GTA" dans le titre, crois moi ;)
@+
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 17 mai 2007 à 21:11
V'là le controle UpDown en plus.
@+
cs_EBArtSoft
Messages postés4525Date d'inscriptiondimanche 29 septembre 2002StatutModérateurDernière intervention22 avril 20199 17 mai 2007 à 22:17
Naaan mais c'est pas ça :p je parle pas de toi haha je sais ce que c'est de coder un controle c'est pas simple et ya quand meme du merite mais bon on peut pas etre toujours être d'accord avec tout hors je comprend pas trop l'interret de reproduire l'interface xp autant utiliser le vrai. Tu aurais tout aussi bien pu faire un desgin plus sympa je penses que c'est ce que voulait dire moustachu egalement.
@+
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 17 mai 2007 à 22:25
EB ==> bé héhé, comme dit tout en haut "voilà ma série de contrôles au style XP... ou autre style, puisque les couleurs sont paramétrables !" ;)
Je propose par défaut un style XP car je le trouve, personnellement, très classieux, mais chacun peut faire son propre style en modifiant quelques lignes de codes, quelques ressources ou même plus simplement quelques une des nombreuses properties proposées.
"autant utiliser le vrai" ==> Bah oui, mais tout le monde ne l'a pas... et certains contrôles sont pourris (enfin de mon gout) sous Vista (par exemple la scrollbar... je préfère encore la mienne... c'est dire...)
"Tu aurais tout aussi bien pu faire un desgin plus sympa je penses que c'est ce que voulai dire moustachu"
> Je suis pas un expert du design, (très) loin de là... D'ailleurs en cherchant bien, on remarquera que j'ai "piqué" certaines couleurs des contrôles de Renfield... parce que les miennes étaient moches...
Tout çà pour dire que j'ai copié le style XP parce que je l'aime bien et parce que je sais pas faire autre chose -__-
Enfin bon. Prenons l'exemple du controle UpDown : tout est fait dedans (subclassing, events, properties, functions, subs...).
Il n'y a juste qu'à changer la sub Refresh pour changer le style...
@+ (n'hésites pas à te casser la tête sur le bug du Timer haute précision si tu as du temps à perdre ^^)
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 18 mai 2007 à 00:53
(sinon des idées.... il manque des pages de propriétés, et une TextBox)
bonne nuit ;)
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 18 mai 2007 à 01:04
Salut,
et bien voilà ! J'avais vu il y a quelques temps la technique de la collection d'objets (pour pouvoir libérer un event depuis une callback function extérieure) quelque part sur vbfrance, ben c'était ta source ;)
Je devrais donc pouvoir débuger (j'espère ?)
Pour les pages de propriétés, c'est vrai que c'est mieux... je vais voir si j'ai le temps.
Pour la textbox également, c'est un controle assez complexe à faire (si je pars de zéro comme c'est le cas avec les autres controles), je vais voir si j'ai le temps ou si je pars d'une textbox existante que j'améliore.
@+ et bonne nuit également ^^
waluigii
Messages postés35Date d'inscriptionvendredi 18 mai 2007StatutMembreDernière intervention 5 janvier 2008 18 mai 2007 à 01:34
Salut,
Violent_ken il est formidable ton code...je vois pas l'intérêt de le faire...Mais sincèrement il est bien noté de ma part.
@+++
-_o
waluigii
Messages postés35Date d'inscriptionvendredi 18 mai 2007StatutMembreDernière intervention 5 janvier 2008 18 mai 2007 à 01:47
Salut,
Question à part: Comment peut-ton faire bondir un shape sphérique...
@+ Bonne nuit à tous!
cs_moustachu
Messages postés1079Date d'inscriptionjeudi 14 novembre 2002StatutMembreDernière intervention 1 janvier 2012 18 mai 2007 à 09:54
waluigii> En lui faisant peur
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 18 mai 2007 à 10:14
Waluigii ==> J'ai déjà expliqué l'intérêt ;)
Même avec un *.manifest qui donne le style XP, certains contrôles ne sont pas satisfaisants :
- Option et Check ne gèrent pas la transparence
- Progressbar ne gère pas le Wheel et limitée à 32767
- UpDown uniquement dans Windows Forms 2.0 qui n'est pas redistribuable
- Timer de VB pas assez précis
- Toggle uniquement dans Windows Forms 2.0
- etc...
Donc je vois mal comment faire autrement pour obtenir ces propriétés que de recoder entièrement tous les contrôles...
D'autant que j'ai ajouté des events qui n'existent pas avec les controles classiques (Enter, Leave, Wheel....).
"Comment peut-ton faire bondir un shape sphérique" ==> lol, aucune idée ^^ Qu'entends tu par "bondir" ?
@+
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 18 mai 2007 à 10:20
Sinon, un bug s'est glissé dans la vkHScroll, je corrigerais ce soir ou demain.
@+
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201615 18 mai 2007 à 12:46
Salut Violent_Ken,
Déjà que je m'éclate avec ton Ocx Frame, et bien là, je suis aux "anges"...
Bravo
A+
Exploreur
waluigii
Messages postés35Date d'inscriptionvendredi 18 mai 2007StatutMembreDernière intervention 5 janvier 2008 18 mai 2007 à 15:07
Salut,
Violent_Ken merci pour les clarifications...
Bondir étant rebondir, sauter, sursauter...en voici des synonymes.
Tout comme un ballon.
Merci,
Et Bravo pour la note tu la mérites!
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 19 mai 2007 à 10:11
Salut, merci Exploreur et Waluigii ;)
Par contre Waluiggi, je ne vois toujours pas ce que tu veux dire par "bondir un shape sphérique" ? Tu veux donner lui un effet de mouvement, comme pour un Command pressé ?
Sinon au passage, le bug du vkHScroll a été corrigé.
@+
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 19 mai 2007 à 11:28
philbar71
Messages postés70Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 5 juillet 2013 19 mai 2007 à 13:41
Très belle réalisation !!!
J'adopte !
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 19 mai 2007 à 15:08
Merci ;)
Au passage, grosse MAJ : j'ai ajouté des pages de propriétés pour chaque controle comme le demandait PCPT !
@+
waluigii
Messages postés35Date d'inscriptionvendredi 18 mai 2007StatutMembreDernière intervention 5 janvier 2008 20 mai 2007 à 03:55
Salut,
Violent_ken => Qu'est-ce qu'il arrive lorsque tu laisses tomber un ballon de panier à terre? ;|
Alors cela te semble tu un peu plus poussante... J'espère enfin t'avoir fait la bonne description. Sinon, je sais plus quoi te dire à toi de fouiller.
Sur ceux bonne nuit à toutes et tous!
@+
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 22 mai 2007 à 20:55
Waluigii ==> erf, j'avoue que je ne percute toujours pas :(
Sinon, petit "sondage" : j'ai presque fini un contrôle Listbox (en fait c'est une listview lvwReport à 1 colonne).
Quels seraient les properties souhaitable pour chaque Item ?
Par exemple, chaque Item a actuellement :
- BackColor
- Checked (item checked ou pas)
- Font
- ForeColor
- Icon
- Index
- Selected
- Text
- Height (hauteur de la ligne)
- Alig (alignement du texte)
Quelqu'un a une idée pour rajouter une property intéressante ??
@+
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 22 mai 2007 à 22:12
umm....
pouvoir choisir la couleur du selecteditem (surlignage)
et pourquoi pas des méthodes FillByFile / SaveToFile ;)
il y a l'alignement? (vu le screen je suppose)
(pas encore regardé ta source mais j'ai DL la dernière maj ;) )
++
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 22 mai 2007 à 22:16
PCPT ==> Oui, il y a l'alignement d'inclus. Ok pour la couleur du surlignage, j'en avais prévue une globale, je vais en faire une également pour chaque Item.
Ok aussi pour les méthodes FillByFile et SaveToFile, çà peut être très pratique !
Merci pour ces idées, je vais les coder ^^
@+
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 22 mai 2007 à 22:22
Heu, au fait, juste une question : comment peut-on faire pour obtenir une zone de saisie, dans la boite de propriétés, similaire à celle de la property List de la ListBox ou de Text d'une textbox multiligne ?
@+
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 22 mai 2007 à 23:02
umm...
j'aurais dit dans les attributs de procédure mais je n'ai pas trouvé
peut-être en typant la propriété comme une "(liste)" mais idem, je ne trouve pas le type réel.
et en générant le code par VB çà donne çà :
Public Property Get ItemData(ByVal Index As Integer) As Long
ItemData = List1.ItemData(Index)
End Property
Public Property Let ItemData(ByVal Index As Integer, ByVal New_ItemData As Long)
List1.ItemData(Index) = New_ItemData
PropertyChanged "ItemData"
End Property
(pour List1 pas vide)
seulement.... beh la propriété n'est même pas affichée
je regarderai plus en détail dès que possible
bonne soirée ;)
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 22 mai 2007 à 23:06
Ok, c'est sympa ;)
J'ai appris quelques trucs notamment OLE_OPTEXCLUSIVE (pour les Options, plus simple que ma méthode pour les Containers), mais j'ai rien trouvé non plus pour les Listes -__-
Bonne soirée, @+
cs_MSergio
Messages postés21Date d'inscriptionvendredi 28 janvier 2005StatutMembreDernière intervention26 juin 2007 23 mai 2007 à 08:42
Salut Violent_Ken,
Je suis bluffé. Ton travail est excellent. Content que tu aies trouvé du temps pour faire tout ça. J'en avais marre de mes applis au design monotone.
J'ai toutefois remarqué que si un option bouton est sélectionné par défaut, celui-ci est grisé. Saurais-tu d'où cela pourrait-il provenir ?
Merci encore,
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 23 mai 2007 à 08:58
Ah ! Merci de m'avoir signalé le bug.
Par contre je n'arrive pas à le reproduire... saurais-tu comment on peut le reproduire ?
@+
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 23 mai 2007 à 09:04
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 23 mai 2007 à 09:25
Ok, pareil, j'ai recherché longtemps hier soir, j'ai trouvé que des "It looks like you can not create a property for a user control that works in the same way as the Combo Boxes List property" -___-
Bon bah tant pis, je laisse tomber... Merci en tout cas pour ton aide.
Sinon pour la ListBox de planet-source-code... WOW ! C'est surtout la vitesse de remplissage qui m'impressionne... moi c'est actuellement 5 fois plus lent, mais bon c'est normal aussi vu que je laisse la possibilité de choisir les properties pour chaque item (donc Set New à chaque AddItem).
Je releaserais la mienne quand elle sera au même niveau ;)
@+
cs_MSergio
Messages postés21Date d'inscriptionvendredi 28 janvier 2005StatutMembreDernière intervention26 juin 2007 23 mai 2007 à 09:26
"Ah ! Merci de m'avoir signalé le bug.
Par contre je n'arrive pas à le reproduire... saurais-tu comment on peut le reproduire ?
@+ " --> peut-être que le mieux serait que je te donne mon code et que tu regardes.
J'ai 2 groupes d'option boutons et cela le fait pour les 2.
Dis moi comment je fais pour te donner le code si tu es intéressé ?
++
cs_MSergio
Messages postés21Date d'inscriptionvendredi 28 janvier 2005StatutMembreDernière intervention26 juin 2007 23 mai 2007 à 09:37
Je pense que ce n'est pas nécessaire que je te donne mon code car je pense que tu vas pouvoir le reproduire.
Le problème ne survient que si tu initialises l'option bouton à partir du code. Je le fais dans une sub appelée durant le form_load.
S'il est initialisé depuis les propriétés graphiques, il n'y a effectivement aucun souci.
++
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 23 mai 2007 à 09:42
MSergio ==> Je n'arrive pas à réobtenir le bug (j'ai fait un nouveau projet, posé 2 frames avec 2 Options dans chaque frame et changé leur Value dans le Form_Load, çà ne change rien) ... Pourrais tu m'envoyer ton code (par exemple, tu ouvres ta Form avec le bloc notes, tu copies tout son contenu et tu me l'envoie par message privé) ?
Merci encore, @+
cs_MSergio
Messages postés21Date d'inscriptionvendredi 28 janvier 2005StatutMembreDernière intervention26 juin 2007 23 mai 2007 à 11:38
Ce ne sera pas nécessaire.
Le problème était que j'avais copié mon code du même projet sans ton OCX dans la form qui utilise ton OCX en ayant fait attention de garder les mêmes noms d'objet. L'option bouton de VB n'a que 2 valeurs possibles (false, true) alors que ton OCX en a 3. Apparemment quand je lui dit à l'init de la form de le positionner à "true", il l'interprète comme "2". Si je lui mets "1", il n'y a plus de problème.
Désolé de t'avoir pris du temps.
++
cs_MSergio
Messages postés21Date d'inscriptionvendredi 28 janvier 2005StatutMembreDernière intervention26 juin 2007 23 mai 2007 à 12:06
Je reviens vers toi pour savoir pourquoi tu n'as pas repris l'événement click pour les checkbox. J'utilisais cet événement pour tous mes contrôles checkbox ce qui me permettait de gérer le click de souris et la validation par le clavier. Maintenant, je dois utiliser 2 événements (MouseUp ou Down et KeyUp ou Down).
Me trompe-je dans l'utilisation de ton objet ?
++
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 23 mai 2007 à 12:11
Tu peux également utiliser l'évênement Change, qui gère Click et Touches.
Mais tu as raison, je vais remettre l'évênement Click dans la prochaine MAJ.
Merci pour ces conseils qui aident à améliorer ma source !
@+
cs_MSergio
Messages postés21Date d'inscriptionvendredi 28 janvier 2005StatutMembreDernière intervention26 juin 2007 23 mai 2007 à 12:15
Désolé de poster à tout va avant d'explorer tous tes événements. En utilisant "Change" il n'y a plus de pb.
++
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 23 mai 2007 à 12:17
Non, pas de soucis, tu as raison de poster, j'aurais du mettre Click plutôt que Change pour rester cohérent avec les CheckBox classiques.
N'hésites pas si tu as d'autres remarques ;)
@+
cs_MSergio
Messages postés21Date d'inscriptionvendredi 28 janvier 2005StatutMembreDernière intervention26 juin 2007 23 mai 2007 à 13:59
Je trouve que le nom que tu as choisi est plus cohérent car on ne clique pas quand on appuie sur une touche du clavier. Je pense que les développeurs Microsoft ont fait une erreur quand ils ont créés leurs événements.
Le fait que ce soit différent n'est pas dérangeant pour moi.
++
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 23 mai 2007 à 19:22
" moi c'est actuellement 5 fois plus lent, mais bon c'est normal aussi vu que je laisse la possibilité de choisir les properties pour chaque item"
> En fait trop pas... c'est juste que je rafraichisait 10000 fois le VScroll. Mon controle sera en fait plus rapide qu'une ListBox classique en terme de remplissage.
Je release sans doutes ce week end. (je retourne à mes révisions de physique... DAMN !)
@+
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 26 mai 2007 à 00:17
MAJ importante :
- ajouté l'évenêment Click du Check
- optimisations et correction de bugs dans les Scrolls et UpDown
- ajout de la vkListBox ! VERSION BETA, je poste pour avoir vos avis sur les trucs à ajouter, enlever....etc.
Cette vkListBox est buguée, je le sais (notamment au niveau du Scroll), mais bon, donnez moi toujours les éventuels bugs que vous recontrerez.
Merci, @+
(ListBox presque aussi jolie que celle de PSC, en tout cas plus configurable ^^)
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 26 mai 2007 à 00:25
je regarde de suite (presque un semaine de retard non? ^^)
par contre en passant, la scroll pourrait être un unique contrôle, avec le choix vertical/horizontal
(çà repasserait à 12 :D)
la listbox a t'elle une scroll horizontale? (à découvrir dans un instant)
ps : tes contrôles sont tout de même construit sur des objets (image, picturebox, ...). tu gagnerait en resources en passant par une classe
@+ tard ;)
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 26 mai 2007 à 00:29
mauvaise ref à vklistitems, tu as du modifier le chemin manuellement mais en oubliant de supprimer la ligne.
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 26 mai 2007 à 00:30
lol non, pas une semaine de retard, mais seulement 14 minutes ;)
Sinon oui, VScroll et HScroll pourraient être dans un seul UserControl...
Et oui, la listbox est pour l'instant (çà peut changer, de toutes façons il manque plein de trucs comme le tri...etc) avec une unique colonne, et une unique VScrollbar (bonne idée pour la HScroll, çà peut être intéressant).
Et en effet, les controles sont construits sur des objets, mais je n'ai pas la maitrise suffisante de gdi et des APIS avec un "DC" dedans pour tout passer en virtual ;) Quand j'aurais plus d'expérience dans le domaine, je l'envisagerai.
Sinon faut pas trop faire gaffe aux bugs de la listbox, j'ai posté çà comme une "base".
PS : je checke le zip et je réupload si nécessaire
@+
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 26 mai 2007 à 00:34
Voilà, le zip est correct.
Par contre le fichier clsvkListItems est pas utile pour l'instant, je n'ai pas encore fixé vraiment la méthode qui sera utilisée pour les Items.
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 26 mai 2007 à 01:12
si la scroll est en bas, qu'on vide et ajoute des items, la scroll reste et est visible (zone centrale) alors qu'elle ne devrait pas, mais pas le nouvel item (encore vers le bas)
si on supprime la scroll, la zone reste blanche (emplacement non-occupé)
le label plante VB ^^
(ouverture de l'interface du label (ctl) avec juste la form en arrière plan (en design évidemment), lors de la fermeture du label, boom
vérifie que le subclassing ne soit bien activé QUE en execution.
NB : attention, un ctrl DANS un crtl est TOUJOURS en execution (ambient.usermode)
NB : lors de manip de ce genre, le terminate peut avoir lieu avant le initialize. bien penser à fermer le subclass QUE s'il est ouvert
ps : tu utilises des timers VB dans tes UC, pourkoi pas le tien?
ccl pour ce soir : design très sympa, pas spécialement XP et c'est tant mieux.
un regret : les pages de propriétés. pratiques mais j'entendais particulièrement des exemples préchoisis, permettant une config des toutes les couleurs par exemple.
autre regret : consomme beaucoup trop de ressources. la form met plus de 10 secondes à s'afficher chez moi :(
j'ai déjà été plus constructif, désolé...
++
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 26 mai 2007 à 01:29
Merci pour le commentaire, qui, je te rassure, est constructif !
Pour l'histoire du scroll, il y a en effet beaucoup de problèmes...
Pour le label, je ne suis pas arrivé à reproduire le bug ??
Pour les timers... bah le mien marche toujours pas ! Et puis vu la stabilité de VB... ajouter un vkTimer avec fonction de CallBack dans un UserControl Scroll qui possède des procédures de subclassing, UserControl Scroll qui est lui même posé dans un autre UserControl subclassé ==> crash à tous les coups ;)
"vérifie que le subclassing ne soit bien activé QUE en execution." ==> Yep, si tu veux référer au VS de la listbox, certains crash doivent venir de là ! Merci pour l'info.
"pratiques mais j'entendais particulièrement des exemples préchoisis" ==> Pas de pb, de toutes façons elles sont "de base" (j'ai juste mis la liste des properties, et j'ai pas fait celle de la listbox).
Par contre là j'ai (très) peur :
"autre regret : consomme beaucoup trop de ressources. la form met plus de 10 secondes à s'afficher chez moi :("
> 10 secondes ??? Dis moi que c'est le *.vbg non compilé que tu as démarré.... parce que si c'est le *.exe compilé, OUCH !!!!
Chez moi, le *.exe met moins d'une seconde (en enlevant les instructions du Form_load), cad à peu près comme les controles de Renfield ?
Merci encore, @+ (pourrais-tu confirmer pour les 10s dans quel cas c'est ? compilé, vbp, vbg... ?)
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 26 mai 2007 à 01:58
entre 8 et 14 secondes par le vbg (j'aurais du préciser ^^) selon ce qui tourne déjà sur le PC, pour 2 secondes en compilé (ouf :D). ce sans toucher au code.
en tout cas la lenteur est due à la lourdeur...
presque 1000 lignes à chaque fois, peut-être voir à subclasser par instanciation/implements (pas toute cette saisie bien trop volumineuse)
comme ceux de Rey, beh de mémoire sa form exemple ne contient que 2 3 contrôles, faudrait tester dans les mêmes conditions
en attendant, le code est très aéré, assez facile de s'y retrouver
bravo ;)
waluigii
Messages postés35Date d'inscriptionvendredi 18 mai 2007StatutMembreDernière intervention 5 janvier 2008 26 mai 2007 à 03:37
Slt,
Violen_Ken;Laisse tomber pour la question...
P.S Cette conversation n'a pas l'air d'avoir un fin
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 26 mai 2007 à 09:42
Salut,
PCPT ==> Ok je vois pour les propertypages ^^
Je suis un peu soulagé pour les 2s ;) C'est trop, mais c'est mieux que 10^^ Mais je peux gagner énormément de temps : je me suis aperçu que par exemple le togglebutton était rafraichit 3 fois lors du lancement, la bar 2 fois...etc, alors qu'une seule suffit largement. Reste à savoir d'où çà vient, et je corrige.
Pour ceux de Renfield (un peu un référence pour moi^^), j'ai regardé avec le même nombre approximatif de controles de même nature pour la comparaison.
Waluigii ==> Ok, comme tu voudras.
@+ et merci
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 26 mai 2007 à 09:46
waluigii -> utilise le moteur avec "gravité", "rebond" ou "screensaver".
les sources ne dont pas faite pour poser des questions qui auraient éventuellement leur place sur le forum ;)
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 26 mai 2007 à 10:16
au read (et à l'init), tu dois lire/enregistrer tes variables puis faire le refresh, alors que tu lis les propriétés qui peuvent elles-mêmes faire ce refresh ;)
exemple pour le caption du tooglebutton => Me.Caption =... au lieu de sCaption =...
à voir pour chaque controle, chaque propriété liée au propbag ;)
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 27 mai 2007 à 10:00
PCPT ==> C'est vrai, mais il y a une variables (bNotOk) qui permet de ne pas demander le Refresh. Cela dit tu as raison.
@+
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 27 mai 2007 à 11:03
Voilà une MAJ qui règle un bug du HScroll et qui optimise grandement je pense les performances lors du loading d'une form.
@+
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 27 mai 2007 à 16:25
Une autre MAJ :
- ajout de clsFastCollection qui permet d'aller beaucoup plus vite (ne rame plus lors de la lecture du 20000eme élément de la liste !!)
- ajout de nouveaux events/properties dans la listbox
- bugs listbox corrigés
- nouveau screenshot (montre la possibilité d'une fonte par Item)
- possiblité de changer l'aspect de la scroll de la listbox
- stabilité grandement accrue par le démarrage du subclassing de la VS DANS la listbox (au passage, cette VS est un nouvel UserControl privé qui ne gère pas le subclassing par lui même)
Il reste donc à faire :
- PropertyPages comme conseillé par PCPT
- Sorted de la listbox
- corriger tous les bugs liés à la VS de la listbox
@+, bientôt fini ^^ (je posterais sur planetcodesource au début du mois de juin)
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 27 mai 2007 à 18:52
Allez hop, maintenant c'est possible de trier les Items de la vkListBox...
@+
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 27 mai 2007 à 21:38
salut,
avant dernière maj -> beaucoup plus rapide (3sec en IDE). impeccable
par contre j'ai regardé le code et idem pour les 2 nouvelles classes : tu ne détruits pas les éléments
tableau => erase
collection d'objet => set nothing item puis remove item en boucle puis set nothing coll
objet => set nothing et/ou avec varptr comme tu en a fais la sub (qui ne semble pas être utilisée partout dans la classe elle-même du moins)
bonne idée pour la VS privée. un hic néanmoins, çà alourdi (forcément) et çà te force une double maintenance à chaque maj.
pourquoi ne pas ajouter une propriété que le dev doit modifier? + une sub pour démarrer le subclassing
genre IsUCChild... si oui et que mode exe DU PARENT (donc de l'uc container) alors le container appelle la sub StartAsynchronousSubClass par exemple...
j'sais pas si je me fais comprendre...
et bien sur en fusionnant le VS et HS, gain final encore plus conséquent
c'est qu'une idée...
++ ;)
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 27 mai 2007 à 22:16
Yep, je n'ai pas pensé au "erase" (jamais utilisé auparavant !), merci bien pour le conseil.
Pour le VS privé, c'est vrai que çà stabilise énormément l'IDE, bien que çà alourdisse pas mal.
Je vais voir si je trouve un moyen d'alléger tout çà (pourquoi pas inclure la VS DANS le code de la ListBox ?) Pour l'idée du StartAsynchronousSubClass, çà peut aussi être une solution en effet.
Merci encore pour tes commentaires constructifs ^^
@+
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 27 mai 2007 à 22:28
"pourquoi pas inclure la VS DANS le code de la ListBox ?"
double voir quadriple maintenance (si tu ajoutes le HScroll)
ou tu transformes en class que tu implémentes dans ton VS, et idem dans ta LB
mais.... si le dev se fait un UC intégrant ton Scroll (UC, pas la classe), il se retrouvera avec le même pb
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 27 mai 2007 à 23:29
"double voir quadriple maintenance" ==> quadruple non, car si je met la VS directement dans la ListBox je ne met pas la HS avec.
Et puis certaines redondances seraient supprimés (notamment un seul subclassing et une seule WindowProc).
Pour l'implémentation pourquoi pas, mais je suis pas encore très familier avec çà ^^
Je verrais demain, mais c'est sur que c'est optimisable.
@+ et merci
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 28 mai 2007 à 00:38
Avant de me coucher j'ai 5 minutes, je poste la dernière MAJ de cette soirée :
- le timer MARCHE, mais est STRICTEMENT identique à celui de VB (avec SetTimer et KillTimer).
Pour avoir la haute précision, faut décommenter les lignes commentées et commenter les lignes KillTimer et SetTimer (qui ne sont pas précises), mais la haute précision bugue toujours (je commence à croire que çà vient pas de moi, mais que çà ne marche pas tout court).
@+
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 1 juin 2007 à 12:15
Bon, grosse MAJ :
- optimisé quelques trucs
- corrigé des bugs
- ajouté FileList, FolderList et DriveList (voir le screenshot).
Par contre j'ai un problème : je n'arrive pas à libérer la mémoire des icones quand le Path de la listbox change -__- Si vous avez une idée ...
@+
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 1 juin 2007 à 12:41
De même, essayez d'accéder au dossier System32 en affichant les fichiers avec leurs icones... et voyez l'immonde bug qui en résulte...
Si vous avez une idée pour corriger ;)
@+
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 1 juin 2007 à 20:40
Bugs résolus !
Les modes FileList, FolderList et DriveList sont pleinement fonctionnems !
@+
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 1 juin 2007 à 23:26
salut,
beh je vais toujours pas noter...
*vérifie les chemins (encore ^^)
*de nouveau très long à charger (7s IDE)
multiples bugs avec les nouveaux composants :
*survole check OK mais reste surcolé mêem hors zone => si on refresh par le chargement d'une autre dossier, le check reste survolé à la même position. (demande si pas clair)
*toujours des pb de scroll, donnant parfois un dossier vide comme résultat (faut re-scroller)
*l'exploration des dossiers semble éronnée (testée avec un CD en cours d'utilisation, 2 dossiers : un seul affiché. exploration du dossier : un mp3 trouvé mais pas les 15 sous-dossiers). y'a t'il aussi l'option de l'affichage des fichiers/dossiers cachés?
*les icônes ne sont pas détourées :$
*une form2 s'est perdue ^^
*une "personnalisation" est en vue?
je n'ai toujours pas regardé le code, possible ce soir si tu veux...
bon courage ;)
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 1 juin 2007 à 23:37
Salut,
- "vérifie les chemins" ==> bizarre, j'ai re-téléchargé le zip je n'ai pas de problèmes ?
- "de nouveau très long à charger (7s IDE)" ==> Yep, mais le temps IDE représente de moins en moins au fur et à mesure que le projet grossit : le temps IDE augmente énormément, mais le temps compilé reste relativement court (une seconde chez moi). Cela dit je peux surement faire mieux ;)
- "survole check OK mais reste surcolé mêem hors zone" ==> exact, je change çà ^^
- "toujours des pb de scroll, donnant parfois un dossier vide comme résultat (faut re-scroller)" ==> oui, toujours les problèmes de scroll... j'ai pas encore vraiment planché dessus, je vais m'y mettre.
- "l'exploration des dossiers semble éronnée" ==> bizarre, je n'ai pas eu de problèmes ? Le listing des fichiers/dossiers/drives vient directement d'une de mes sources (FileSystemLibrary) qui marche ?
-"y'a t'il aussi l'option de l'affichage des fichiers/dossiers cachés?" ==> pas encore, mais je vais en mette une (caché, systeme, RO..., pas de problèmes ;) (c'était un reproche que je faisait avant aux Dir et FileList)
- "les icônes ne sont pas détourées :$" ==> raaah, si seulement je connaissais mieux gdi32... ;)
- "une form2 s'est perdue ^^" ==> lol oui ;)
- "une "personnalisation" est en vue?" ==> çà viendra, c'est promis !
Encore MERCI pour tous les conseils, je vais pouvoir débuger et améliorer ! Merci !
@+
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 1 juin 2007 à 23:51
Pour l'histoire du listing des fichiers, çà fait pareil sur un CD chez moi ?? Je vais voir d'où çà vient...
@+
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 1 juin 2007 à 23:58
J'ai trouvé le bug pour le listing des dossiers.
J'ai également réglé le bug du check des Listes qui reste en surbrillance.
Le reste dans une deuxième MAJ dimanche ;)
@+
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 3 juin 2007 à 13:10
Ajouté la possibilité d'afficher ou non les fichiers/dossiers Hidden, ReadOnly et System.
Il ne reste donc comme bugs uniquement ceux liés aux Scroll il me semble.
@+
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 3 juin 2007 à 14:26
bon, un petit coup d'oeil...
Opt et Check -> ne sont réceptifs que sur l'image et le caption. faut vraiment viser (on ne peut pas cliquer à l'intérieur d'un "o" par exemple)
listbox... çà va pas :D
ok tu gères le in out pour ne plus surligner. mais l'item check ne se surligne plus alors si on le resurvole (il faut d'abord en surligner un autre)
scroll, il doit y avoir vraiment un énorme problème oui...
au refresh de ta vkListBox j'ai ajouté VS.value = 0
si j'ai bien vu çà lance le Paint (donc refresh SI tests ok)
boom, dépassement de pile
pour le temps en IDE, inchangé. il manque des tests ambiant.usermode (et parent si UC, comme indiqué précédemment)
t'a oublié le form2 :p
vkTimer et vkMouseKeyEvents -> maskcolor blanc, maskpicture = picture (le copier coller fonctionne), backstyle transparent
(il faut refaire l'image pour le timer. en bmp d'un pure blanc :p)
çà détourera sans prendre de ressource
çà sera tout pour aujourd'hui ^^
++
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 3 juin 2007 à 14:49
"Opt et Check" ==> yep je sais, mais la property BackStyle d'un usercontrol l'oblige...
"ok tu gères le in out pour ne plus surligner. mais l'item check ne se surligne plus alors si on le resurvole (il faut d'abord en surligner un autre)" ==> c'est vrai ! je vais voir çà.
"pour le temps en IDE, inchangé. il manque des tests ambiant.usermode (et parent si UC, comme indiqué précédemment)" ==> yep c'est vrai, mais de toutes façons il faut utiliser les controles en compilé ;)
"t'a oublié le form2 :p" ==> erf oui
Merci, je vais mettre à jour pour les premiers bugs.
@+
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 3 juin 2007 à 16:11
Alors là c'est bon, j'ai tout réglé sauf les bugs du Scroll !
Même si c'est long à charger dans l'IDE, je n'y peux plus rien (j'ai vérifié, chaque controle ne se Refresh qu'une seule fois).
@+
cs_MSergio
Messages postés21Date d'inscriptionvendredi 28 janvier 2005StatutMembreDernière intervention26 juin 2007 4 juin 2007 à 14:45
Salut Violent_Ken,
Je ne comprends pas pourquoi tu as fait une listbox avec une listview. Pourquoi ne pas garder la listview en tant que telle et laisser ceux qui veulent la limiter le faire eux-mêmes ?
As-tu envisagé de créer un Flexgrid hiérarchique au style XP un jour ? Je suis intéressé.
Je trouve que c'est le meilleur contrôle pour afficher des listes de données même non hiérarchisées. Enfin, ce n'est qu'un avis personnel.
En tout cas, merci encore pour tous tes contrôles. j'avais oublié de te noter. Bien sûr c'est un 10 que je t'octroie.
++
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 4 juin 2007 à 18:56
Salut,
"pourquoi tu as fait une listbox avec une listview" ==> en fait c'est le contraire, j'ai fait une listview avec une listbox ;) Comme son nom l'indique (vkListBox), c'est une Listbox, mais tellement plus riche que celle de VB qu'elle se rapproche d'une ListView à une colonne.
Je n'ai pas fait directement une ListView car je l'ai jugée - au départ - trop complexe, mais je ferais peut être un jour un vraie ListView.
"As-tu envisagé de créer un Flexgrid hiérarchique au style XP un jour ?" ==> Pas encore (j'utilise jamais le controle FlexGrid), je vais voir si c'est jouable, et pourquoi pas (mais quand j'aurais le temps ^^, fin d'année oblige ==> partiels, DS... ^^)
Merci pour le commentaire et la note, @+
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 4 juin 2007 à 21:42
Petite MAJ : la propriété ListIndex fonctionne désormais (testé lecture uniquement).
Application : cliquez sur un item de la liste de droite avec le bouton droit...
@+
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 4 juin 2007 à 21:48
Je précise tout de même avant qu'on me le dise, OUI cela génère une erreur quand il n'y a pas d'Items.
Tout comme un Listview vide quand on fait :
Private Sub Command1_Click()
Me.Caption = LV.ListItems.Item(1).Text
End Sub
@+
cs_MSergio
Messages postés21Date d'inscriptionvendredi 28 janvier 2005StatutMembreDernière intervention26 juin 2007 5 juin 2007 à 10:40
Merci pour tes réponses et désolé pour mon erreur sur la Listbox.
J'ai remarqué que tes contrôles ne sont pas sensibles aux raccourcis clavier ajouté grâce au & dans le caption des contrôles.
Ce n'est pas si grave mais pour un fondu du clavier comme moi, c'est un peu gênant.
++
niczob
Messages postés11Date d'inscriptionlundi 23 mai 2005StatutMembreDernière intervention 4 mars 2010 5 juin 2007 à 17:47
Merci pour la précision sur la license ;)
Je ne l'avais pas encore fait remarquer, mais tes contrôles sont excellents ! (je pense que tu l'avais compris)
Je ne sais pas si cela a été dit plus haut (je n'ai pas tout lu), mais il y a un bug avec les boutons et la propriété Enabled : quand un bouton est disabled, il est bien grisé, mais on peut encore cliquer dessus. Ce n'est pas un problème en soit, c'est contournable, mais je tenais à faire part de cette remarque.
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 5 juin 2007 à 19:12
MSergio ==> yep, j'ai pas pensé du tout à çà, j'essaierai de gérer çà bientot !
niczob ==> Dis le moi, si tu veux que je passe en LGPL. Sinon pour le bug du Enabled, je vais voir çà, merci ;)
@+
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 6 juin 2007 à 19:51
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 6 juin 2007 à 20:14
Suite a une demande, j'ai modifié la licence.
Par conséquent, il est maintenant possible d'utiliser ces controles dans une application commerciale sans en changer la license.
@+
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 7 juin 2007 à 23:49
Hum, quelqun sur PSC m'a rapporté que la plupart des controles ne s'affichaient pas (tout noirs) sous Windows2000.
Si quelqu'un essaie de faire tourner le code sous Windows2000, merci de me tenir au courant du résultat ^^
@+
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 8 juin 2007 à 06:33
testé sous Win2K pro sp4 avec ton avant dernière version, affichage identique à XP.
"quelqu'un" raconte n'importe quoi^^
au pire dit lui d'ajouter initcommoncontrols au démarrage de l'exe pour tester, si çà résoud le pb alors ajoute un module et sub Main à l'ocx pour faire cet appel.
possible que çà vienne de sa version de comctl32.ocx.
autrement dit soit ses SP de Win, soit pas le SP6 de VB (je penche pour çà)
++ ;)
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 8 juin 2007 à 10:31
Merci PCPT, çà me rassure ... un peu ;)
Parce que Renfield vient de me rapporter qu'il avait le soucis avec XP !
"Même soucis : ils sont tout noir, jusqu'à ce que je les survole… (je suis sous Xp, au boulot…)"
Même problème que la personne de PSC : "I'm using W2K and half the controls didn't paint, were just black, till I moved the mouse over them."
C'est vraiment bizarre. L'entrée de la souris sur les controles a pour but d'activer le message WM_MOUSEHOVER et donc de lancer un Refresh.... mais ce Refresh aurait du être lancé bien avant (lors du Resize).
Damn !
@+
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 8 juin 2007 à 10:45
si c'était le paint ils seraient transparent ou gris.
je ne vois que çà pour y remédier : Declare Sub InitCommonControls Lib "comctl32" ()
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 8 juin 2007 à 10:50
Nop, Renfield vient d'essayer et çà ne change pas.
Je pense que c'est la procédure UserControl_Resize qui n'est pas exécutée (car c'est elle qui Refresh le controle lors du chargement).
@+
cs_MSergio
Messages postés21Date d'inscriptionvendredi 28 janvier 2005StatutMembreDernière intervention26 juin 2007 8 juin 2007 à 11:00
Salut VK,
Tu permets que j'abrège ton pseudo ?
Je te prie de bien vouloir excuser mon ignorance mais aurais-tu un exemple d'utilisation d'un scroll vertical. En fait, j'utilise un MSHFlexgrid qui a déjà un scroll intégré. Toutefois ce scroll fait tâche avec le reste de mon appli. J'aimerais donc utiliser ton scroll vertical. Je n'ai jamais utilisé de scroll auparavant et je n'ai pas réussi à trouver d'exemples d'utilisations de scroll. Je ne comprends pas comment on sait quand le scroll descend ou monte en particulier
Merci
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 8 juin 2007 à 11:22
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 8 juin 2007 à 11:32
MSergio ==> Pas de problèmes, tu peux m'appeler VK ;)
Alors pour utiliser ma VScroll dans un MSHFlexGrid, voilà comment tu pourrais faire :
- enlever les scrollbars du Grid (MSHFlexGrid1.ScrollBars=0)
- poser un controle vkVScroll à côté du Grid
- récupérer un changement de valeur du Scroll. Il y a pour çà plusieurs évênements, le plus simple étant Scroll_Change. Tu récupère donc la valeur du Scroll (vkVScroll1.Value) dans le Scroll_Change, et en fonction de çà, tu changes la première colonne visible de ton Grid en changeant la propriété TopRow. Après, il faut ajuster le Max de la Scroll à chaque fois que tu ajoutes ou enlèves une ligne.
J'espère que çà t'aideras ^^
PCPT ==> En fait, Renfield est arrivé à faire marcher les controles sur un PC où çà buguait : c'est apparement l'ordre d'appel de ReadProperies, Initialize, Resize...etc. qui est changé sur certains PC, d'où une mauvaise gestion de l'appel au Refresh.
Merci, @+
cs_MSergio
Messages postés21Date d'inscriptionvendredi 28 janvier 2005StatutMembreDernière intervention26 juin 2007 8 juin 2007 à 12:00
Merci pour ta réponse rapide et apparemment précise. J'essaie de suite, enfin après le repas...
Merci encore.
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 8 juin 2007 à 23:51
Update :
- correction du bug des controles tout noirs
- ajout d'un OCX de gestion du SysTray avec gestion automatique du crash d'explorer par hook.
@+
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 8 juin 2007 à 23:51
*ajout d'un USERCONTROL, pas d'un OCX....
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 10 juin 2007 à 15:40
MAJ :
- ajout de la vkTextBox : c'est une classique + zone légende qu'avait inventée Renfield + numérotation des lignes + fonctions pratiques qui manquaient à la vbTextBox (GetLine, LineCount...etc.)
@+
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 10 juin 2007 à 15:44
dommage que ta TextBox ne soit pas liée à TON scroll, çà casse tout le charme...
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 10 juin 2007 à 15:52
Pas d'inquiétude, je suis en train de le faire ;)
Je sais très bien que c'est moche, surtout pour ceux qui ont un thème non XP (classic ou vista) ^^
Je livre une version fonctionnelle pour voir si des gens trouvent des bugs autres que ceux liés aux Scrolls (qui sont TRES nombreux dans la version scrolls perso -__-).
Cà va venir ;)
@+
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 10 juin 2007 à 20:12
Avec un subclassing un peu étrange, je suis arrivé à inclure sans aucun bug la VScroll ;)
Je planche sur la HScroll ^^
@+
cs_MSergio
Messages postés21Date d'inscriptionvendredi 28 janvier 2005StatutMembreDernière intervention26 juin 2007 11 juin 2007 à 10:21
Salut VK,
Pour info, la propriété TopRow reste à 0 quand la propriété ScrollBars est à flexBarScrollNone pour un MSHFlexgrid. Pour utiliser ton scroll, il faut donc afficher le scroll de la MSHFlexgrid.
Je vais tester ton nouceau scroll car avec l'ancien, cela ne marchait que moyennement bien. Je ne sais pas si cela vient de mon code ou de ton scroll car c'est la première fois que j'utilise un scroll externe à un objet.
Je teste et si je n'y arrive toujours pas, je te montrerais mon code pour voir si je fais des erreurs.
++
cs_MSergio
Messages postés21Date d'inscriptionvendredi 28 janvier 2005StatutMembreDernière intervention26 juin 2007 11 juin 2007 à 10:52
Je vais devoir continuer mon projet sans ton scroll qui bug. Je viens de tester le dernier (10/06)et il bug toujours. Si j'utilise le même code avec un scroll de vb, cela se passe sans souci. Je pense que je vais utiliser le scroll de vb en attendant que ton scroll fonctionne sans problème.
Dans le scroll de vb, l'événement Change, ne comporte aucune variable alors que le tien en contient une appelée Value de type Currency. Est-ce normal étant donné qu'il y a déjà la propriété Value pour le scroll ?
++
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 11 juin 2007 à 10:56
"Dans le scroll de vb, l'événement Change, ne comporte aucune variable alors que le tien en contient une appelée Value de type Currency. Est-ce normal étant donné qu'il y a déjà la propriété Value pour le scroll ?" ==> Oui, c'est tout à fait normal, j'ai choisis de passer ce paramètre en plus, sachant que l'on utilise très souvant Scroll.Value dans le change (donc en ayant le paramètre Value, çà permet d'éviter d'avoir à appeler la property).
Cela dit, pourrais-je te demander ton code pour que je voie où çà bug avec ma scroll ? Histoire que je corrige ma source si nécessaire ^^
Merci, @+
cs_MSergio
Messages postés21Date d'inscriptionvendredi 28 janvier 2005StatutMembreDernière intervention26 juin 2007 11 juin 2007 à 14:05
Peut-être que ton scroll ne bug pas.
Je viens de m'apercevoir qu'après avoir réenregistré ton OCX, tous les nouveaux contrôles n'y sont pas alors qu'en créant un nouveu projet et en ajoutant ton OCX, il n'y a pas de problème. Sais-tu pourquoi ? Ai-je mal fait quelque chose ?
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 11 juin 2007 à 14:16
Tu dois avoir plusieurs versions de mon OCX enregistrées (tu n'as pas du désenregistrer l'ancienne version avant d'enregistrer une nouvelle version).
Je te conseille de :
- désenregistrer tous les vkUserContolsXP.ocx présents sur ton disque
- recompiler la dernière version
- créé un nouveau projet et ajouter l'OCX (tu fais CTRL+T -> Parcourir et tu sélectionnes celui que tu viens de compiler)
- un nouveau OCX est coché dans la liste. Si plusieurs portent le même nom, alors il y a un conflit (plusieurs versions)
- clique sur OK et vérifie que les controles sont bien tous ajoutés au nouveau projet
- enregistre le projet
- ouvre le fichier *.vbp avec le bloc notes
- récupère la ligne qui ressemble à "Object={663909D2-4D55-47D5-BF80-43B9F88E5480}#61.0#0; vkUserControlsXP.ocx"
- ouvre TON projet
- remplace la ligne Object=.... par celle obtenue dans le nouveau projet
- sauvegarde
- relance ton projet
- et espère !!!
N'hésites pas si tu as des questions ;)
@+
cs_MSergio
Messages postés21Date d'inscriptionvendredi 28 janvier 2005StatutMembreDernière intervention26 juin 2007 11 juin 2007 à 14:22
J'aimerais bien pouvoir le recompiler mais je ne parviens pas à ouvrir le projet vkUsersControl.vbp sans erreurs. La première erreur qui génère peut-être les suivantes vient du chargement du contrôle de la textbox. Je te précise que j'ai fait la maj SP6B après avoir rencontré ces soucis seulement.
Je vais quand même testé ta manip en priant.
Merci.
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 11 juin 2007 à 14:26
Quels sont les erreurs que tu rencontres ? Quand tu essayes de compiler, çà te dis quoi ?
@+
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 11 juin 2007 à 15:03
Comme me le fait remarquer Renfield, le zip est mauvais.
Je ré-upload çà tout de suite, mais par contre la TextBox sera une BETA (j'ai pas encore fini de régler quelque problèmes avec la HScroll).
@+
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 11 juin 2007 à 15:29
Bon alors, une MAJ :
- zip corrigé : plus de fichier OCX dedans, plus de compatibilité entre projets et plus de mauvaises références. Démarrez simplement le fichier *.vbg ;)
- ajout des scrollbars perso dans la vkTextBox (et voilà PCPT ^^). Par contre j'ai sacrifié les property RoungAngle et BreakCorner, et de plus la HScroll ne fonctionne pas encore correctement, mais çà ne saurait tarder.
@+
cs_MSergio
Messages postés21Date d'inscriptionvendredi 28 janvier 2005StatutMembreDernière intervention26 juin 2007 11 juin 2007 à 16:17
Je t'ai fait un projet test où je reprends mon code pour retailler ma flex et ses colonnes, y apposer un VScroll et le gérer.
Où puis-je te l'envoyer ?
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 11 juin 2007 à 16:20
hum, je t'envoie pas MP mon adresse mail.
@+
cs_MSergio
Messages postés21Date d'inscriptionvendredi 28 janvier 2005StatutMembreDernière intervention26 juin 2007 11 juin 2007 à 16:21
J'ai oublié de préciser que ta manip avait fonctionné et surtout que c'était ma faute car après coup, je me suis aperçu que j'avais 2 fois l'ancienne version de l'OCX.
Désolé pour la perte de temps.
++
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 11 juin 2007 à 17:50
Bon voilà, j'ai amélioré la HScroll de la vkTextbox.
Pas parfaite, elle bug un peu (beaucoup ?). En plus elle est pas compatible avec la VScroll (entendre pas là que en mode HScroll activé, LineCount ne marche plus...)
Par contre la VScroll (celle qui est vraiment utile) marche nickel ;)
@+
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 15 juin 2007 à 13:50
MAJ :
- ajouté un nouveau controle (vkScrollContainer), voir exemple pour comprendre à quoi çà sert ;)
- corrigé des bugs dans la vkBar (maintenant c'est ok pour utiliser la fonction Interactive, l'exemle est donné en bas à droite de la form, dans le vkScrollContainer)
- corrigé des bugs dans vkCommand et vkToggleButton (plus de problèmes dans le ReadProperties)
- nouvel exemple et nouveau screenshot.
MSergio a mis en avant un bug dans les Scrolls, je planche dessus et je mettrais prochainement à jour !
@+
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 15 juin 2007 à 18:53
PCPT ==> J'ai ajouté des styles par défaut comme tu me le demandais (pour le vkCommand et le vkToggleButton) ;)
6 styles par défaut :
- Normal
- XP
- Plastik
- Galaxy
- Office
- JAVA
@+
FMatrix07
Messages postés233Date d'inscriptionmercredi 26 février 2003StatutMembreDernière intervention21 février 20092 17 juin 2007 à 09:40
Hello VIOLENT_KEN,
Je regarde toujours cette source avec plaisir et je surveille les maj car je trouve ta source d'enfer.
Par contre il ya un bug dans la dernier mais rien de grave c'est que tu as laissé les liaisons pour le vkScrollContainer.ctl avec ton projet STYLE-XP-15-USERCONTROLS.
Sinon si tu veux une autre evolution à faire tu peux ajouter une image qui change sur tes boutons command quand tu passe la souri. Vu que tu as deja une image possible il te reste juste à ajouter une autre image et tester si la souri passe sur ton bouton pour changer l'image.
Bonne continuation
FMATRIX07
PS je mets 11/10 bien que ça prenne pas mal de ressource d'utilser cette OCX ne pourrait on pas diminuer cela ?
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 17 juin 2007 à 10:00
Salut, alors merci pour avoir remarqué la mauvaise liaison de vkScrollContainer, j'ai corrigé.
Dans la MAJ, j'ai également
- corrigé quelques autres bugs (orientation de la Légende et quelques autres)
- ajouté la gestion du Pattern pour la ListBox (en mode FileListBox)
"Sinon si tu veux une autre evolution à faire tu peux ajouter une image qui change sur tes boutons command quand tu passe la souri. Vu que tu as deja une image possible il te reste juste à ajouter une autre image et tester si la souri passe sur ton bouton pour changer l'image." ==> Oui pourquoi pas... je pense que je le ferais dans la prochaine MAJ ^^
"bien que ça prenne pas mal de ressource d'utilser cette OCX ne pourrait on pas diminuer cela ?" ==> Hum, effectivement c'est très long à démarrer le *.vbg, mais sinon en compilé çà rend nettement mieux. J'ai commencé à inclure mes controles dans mon projet Hex Editor VB, et çà tourne assez bien. Cela dit il y a sans doutes moyens d'optimiser tout çà, çà viendra au fur et à mesure des MAJs de cette source ;)
Mais concernant la form de test, elle est bourrée de controles (+ de 80) et il y a quelques boucles au démarrage ==> prend du temps à charger. Dans un projet normal (10-30 controles par form), c'est plus rapide.
@+ et merci.
FMatrix07
Messages postés233Date d'inscriptionmercredi 26 février 2003StatutMembreDernière intervention21 février 20092 17 juin 2007 à 10:32
Impec je suivrai cela avec impatience
Sinon tu pourrais ajouter dans la position de l'image l'option Center en plus de Right et Left dans les boutons command
@+
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 17 juin 2007 à 13:48
Yep ;)
Sinon pour te répondre plus concrêtement, les optimisations (et donc la légereté) viendront avec l'utilisations massive d'APIs graphiques (plutôt que Line, Print...).
J'ai déjà trouvé comment faire un gradient avec les APIs, reste donc que j'arrive à me passer des PictureBox et autres controles grâces aux DCs et c'est gagné ;)
(enfin faudra être patient :p)
@+
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 17 juin 2007 à 13:54
Pour info, la création de gradient est 47 fois plus rapide par API ;)
@+
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 17 juin 2007 à 14:19
Bon j'ai fait une MAJ très rapide pour optimiser quelques peu les performances : les dégradés s'effectuent désormais par API ==> gros gain de performances et code moins long.
Egalement j'ai pris en compte le Enabled du vkListBox (le controle est différent quand il n'est pas Enable : grisé...etc)
@+
FMatrix07
Messages postés233Date d'inscriptionmercredi 26 février 2003StatutMembreDernière intervention21 février 20092 17 juin 2007 à 22:12
Hello
Il est vrai que ça soulage un peu le proc et le fait de passer en création gradient diminurai encore plus.
Courage petit scarabé !!! LOL
Au fait j'ai retouvé le boutton control qui utilise 2 images si ça te dis
@+
FMATRIX07
FMatrix07
Messages postés233Date d'inscriptionmercredi 26 février 2003StatutMembreDernière intervention21 février 20092 21 juin 2007 à 06:47
Hello VIOLENT_KEN,
Sais tu comment faire pour faire un appel de tes controles comme avec ceux de VB
je m'explique j'ai un bouton command1
avant il m'arrivait de faire dans mon code command1_click ou meme command1.value=true
mais quand je passe avec le vkcommand1 je ne peux plus l'appeller avec vkcommand1_click ou meme vkcommand1.value=true car inconnu
Merci de ton aide
FMtrixà7
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 21 juin 2007 à 09:14
FMatrix07 -> c'est exactement le même appel.
et si tu appelles d'une autre feuille, il faut évidemment changer la portée de l'évènement (public) comme c'est aussi le cas pour les contrôles VB
++
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 21 juin 2007 à 14:12
Salut, oui bien sur il faut passer en public la procédure vkCommand1_Click() pour l'appeler d'un autre module... et il n'y a pas de propriété Value au controle vkCommand !
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 21 juin 2007 à 15:08
Autant pour moi, du coréen et pas du japonais ;)
C'est en fait une traduction du code que j'ai déposé sur planet-source-code, avec un nouveau screenshot. Donc sans doutes quelqu'un qui a téléchargé mon code sur PSC et qui l'a uploadé ici ?
Je suis tombé dessus par hasard hier, et comme j'ai vu "bug" dans les commentaires, je cherchais juste à savoir ce qui était écrit !
@+
FMatrix07
Messages postés233Date d'inscriptionmercredi 26 février 2003StatutMembreDernière intervention21 février 20092 21 juin 2007 à 21:21
Ok
J'ai bien vu ton message je vais essayer pour le moment j'utilise
vkcommand1.WindowProc vkcommand1.hwnd, WM_LBUTTONDBLCLK, 0, 0
et ça fonctionne
FMatrix07
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 22 juin 2007 à 02:32
FMatrix07 -> euh... j'crois mieux comprendre ta demande : tu voulais simuler le click VISUELLEMENT ??
un contrôle, lors d'un évènement (comme le click) renvoie (raiseevent) l'évènement approprié.
dans ce code le dev met ce qu'il veut
private sub UC_Click(): msgbox "clické": End Sub
cet évènement n'est ni plus ni moins qu'une procédure, sauf qu'elle est disponible dans la liste des évènements de l'UC
donc tu peux l'appeler à n'importe quel moment.
pour l'effet visuel il faut en effet déclencher l'évènement parent (celui qui fera le raiseevent)
pour un Click, par exemple en déplaçant la souris et en cliquant (SetCursorPos + mouse_event).
toi ici, ce que tu fais, c'est appeler la WinProc en lui attribuant des params.
ouai çà marche, mais c'est tout sauf propre (tout comme déplacer la souris d'ailleurs)
tit problème de conception non? ^^
Violent_Ken -> WinProc en Friend, çà passe? sinon au pire des cas AU MOINS la masquer (attributs)
ps : toujours pas regardé ta source en profondeur mais je n'y manquerai pas ;)
++ ;)
FMatrix07
Messages postés233Date d'inscriptionmercredi 26 février 2003StatutMembreDernière intervention21 février 20092 22 juin 2007 à 06:28
Merci pour ce petit comment PCPT.
Non je ne voulais pas faire de clique visuel mais je me suis complié la vie, j'etais partir sur un code sans reflechir désolé, je vais juste faire ce que tu m' a dis
Commentaire de : PCPT le 21/06/2007 09:14:47 FMatrix07 -> c'est exactement le même appel.
et si tu appelles d'une autre feuille, il faut évidemment changer la portée de l'évènement (public) comme c'est aussi le cas pour les contrôles VB
++
Merci
FMatrix07
cs_MSergio
Messages postés21Date d'inscriptionvendredi 28 janvier 2005StatutMembreDernière intervention26 juin 2007 22 juin 2007 à 12:15
Salut VK,
Je reviens pendant quelques temps sur mon projet.
As-tu eu le temps de te mettre sur le problème du LargeChange de ton scroll vertical ?
J'ai vu qu'il n'est pas possible de changer graphiquement la couleur de la VScroll intégrée de ta listbox. Et si tu redimensionnes ta listbox graphiquement, la VScroll intégrée ne se redimensionne pas.
Pour information je n'ai que la version 15 compilée de ton OCX car je ne parviens pas à lancer la version 16 sans erreur. Les erreurs surviennent lors du chargement des objets vkHScrollPrivate et vkVScrollPrivate.
++
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 22 juin 2007 à 13:27
Salut, alors :
- " LargeChange de ton scroll vertical" => non, pas encore ! (DS de fin d'année ces 2 dernières semaines, donc pas le temps jusqu'à présent ^^), je commence lundi a supprimer les bugs liés aux scrolls.
- "J'ai vu qu'il n'est pas possible de changer graphiquement la couleur de la VScroll intégrée de ta listbox" ==> Changer l'aspect de la scroll de la listbox graphiquement, c'est effectivement impossible actuellement, car il manque les fichiers *.pag (page de propriété) associés à ces "sous-controles". Mais c'est tout à fait prévu.
- "Et si tu redimensionnes ta listbox graphiquement, la VScroll intégrée ne se redimensionne pas" ==> ah, je vais voir çà, merci.
- "car je ne parviens pas à lancer la version 16 sans erreur" ==> le mieux est de désinstaller l'ancienne version avant d'essayer une nouvelle. Mais pour ce problème précis, le remède est facile ;) Il suffit d'éditer les controles qui buguent avec les scrolsl privates, de supprimer les scrolls, et de les ré-ajouter en les renommant du même nom. Cà devrait suffire ;)
Je ferais une MAJ en début de semaine, j'espère arriver à corriger la totalité des bugs rencontrés avec les scrolls, que ce soit en Private (dans la listbox ou la textbox) ou dans les controles Scroll eux même.
Egalement, j'ai prévu d'ajouter le support de l'Unicode dans mes contrôles (si j'y arrive !).
Puis reste aussi une ListView qu'on m'a démandé de faire (devrait pas être trop trop dur), de la transparence alpha (ouch !) et enfin un mshflexgrid (par contre là je sais pas encore si c'est possible).
@+
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 25 juin 2007 à 20:37
Salut, v'là la première MAJ, j'ai corrigé de nombreux bugs :
- la scroll de la vkListBox change de position lors des ajouts d'Items
- plus de bug lors du LargeChange (MSergio, c'est ENFIN bon normalement ! ^^)
- plus de bug de SetFocus lors du vkCommand_Click
- meilleur comportement du vkCommand (lors du MouseUp, et pas possible hord de la zone du controle)
- ...
Je travaille sur les autres problèmes des Scrolls.
@+
FMatrix07
Messages postés233Date d'inscriptionmercredi 26 février 2003StatutMembreDernière intervention21 février 20092 25 juin 2007 à 20:42
Impatient j'essai
@+
FMatrix07
FMatrix07
Messages postés233Date d'inscriptionmercredi 26 février 2003StatutMembreDernière intervention21 février 20092 25 juin 2007 à 20:57
Dans les
Private Sub UserControl_GotFocus()
'alors on va tracer un BÔ rectangle de sélection
Dim R As RECT
Dim y As Long
Dim x As Long
'If bEnable = False Then
'on ne garde pas le focus
Call SendKeys("{Tab}")
Exit Sub
End If
Private Sub UserControl_GotFocus()
'alors on va tracer un BÔ rectangle de sélection
Dim R As RECT
Dim y As Long
Dim x As Long
' If bEnable = False Then
'on ne garde pas le focus
Call SendKeys("{Tab}")
Exit Sub
End If
il y a un cote en trop devant les If
Sinon
Tu n'as pas ajouté la position de l'image l'option Center en plus de Right et Left dans les boutons command ? LOL
Tu n'as pas ajouté une image qui change sur tes boutons command quand tu passe la souri. Vu que tu as deja une image possible il te reste juste à ajouter une autre image et tester si la souri passe sur ton bouton pour changer l'image ? LOL
@+
FMatrix07
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 25 juin 2007 à 21:18
-____-
Il y a eu tellement de posts entre temps que j'ai oublié... j'ai pourtant relu les commentaires en partant des derniers, mes MP et les commentaires sur PSC pour trouver les bugs à corriger...
Ce sera fait dans la prochaine MAJ (enfin, pas celle tout de suite vu qu'il faut que je vire le petit bug, mais celle d'après), c'est PROMIS !
Désolé d'avoir oublié.... @+
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 25 juin 2007 à 21:23
Voilà, la source est à nouveau fonctionnelle.
Donc comme je l'ai dit, j'aurais inclus les modifications demandées lors de la prochaine MAJ.
@+
Yhaooo, ca ne manque pas de commentaires. (dsl, j'ai pas tout lu)
Bon, même si je ne suis pas grand fan des contrôles personnalisés dans les applications, ceux la sont bien réussit.
Allez, je balance une idée qu'on ne voit pas souvent :
Dans les listbox, y'a souvent des CheckBox, pourquoi pas pouvoir mettre des OptionsButtons ? Ou les deux à la fois. C'a m'aurais été utile plus d'une fois.
A quand la TreeView (ou TreeListView serait encore mieux) ? (avec aussi des optionboutons dedans ^^)
__
Kenji
FMatrix07
Messages postés233Date d'inscriptionmercredi 26 février 2003StatutMembreDernière intervention21 février 20092 25 juin 2007 à 23:15
Cool si tu fais les ad que je t'ai soumis.
Enfin tu les fais si tu le souhaite ce n'est qu'une proposition.
Sinon si Nix passe par là au bout de combien de commentaires vous donnez un trophé à une source car celle-ci le merite bien.
@+
FMatrix07
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 25 juin 2007 à 23:53
Charles Racaud ==> Oui, un OptionButton dans la vkListBox, pourquoi pas, je note dans la (longue) liste des 'TODO' ^^ Comme çà dès que j'ai le temps, j'essayerai de mettre en oeuvre ;)
Sinon pour un TreeView/TreeListView, pourquoi pas, je pense que je vais déjà faire un vkListView (si j'y arrive), et je verrais si c'est possible à faire un TreeView simplement.
FMatrix07 ==> Pas de soucis, dans la prochaine MAJ tu auras l'option "Center" pour l'image dans les vkCommand, vkToggle et vkFrame. Par contre le positionnement du texte (avec l'image au centre) sera un peu difficile... ?
De même, je rajouterai une property MouseHoverIcon qui contiendra l'image à afficher en icone lors du survol d'un vkCommand par la souris.
Demain normalement ;)
@+ et merci pour les commentaires
cs_MSergio
Messages postés21Date d'inscriptionvendredi 28 janvier 2005StatutMembreDernière intervention26 juin 2007 26 juin 2007 à 09:12
Merci VK,
Je teste de suite...
++
cs_MSergio
Messages postés21Date d'inscriptionvendredi 28 janvier 2005StatutMembreDernière intervention26 juin 2007 26 juin 2007 à 17:12
Apparemment le LargeChange est parfaitement géré maintenant. Je ne vois pas d'autres probèmes à te signaler sur ton VScroll.
En revanche as-tu l'intention d'ajouter la gestion des raccourcis clavier si on ajoute un & dans la propriété caption d'un contrôle ? Cela m'apparaît indispensable. En ce qui me concerne, je ne supporte pas les applis qui ne permettent pas d'utiliser ces raccourcis. Il suffit de tomber en panne de souris pour que cela puisse nous permettre de travailler. Je serais vraiment déçu si tu ne planifiais pas dans le futur de l'implémenter. Ce n'est qu'un avis personnel. Je suis tout de même surpris d'être le seul affecté par ce manque.
Merci pour ton boulot quoi que tu décides,
++
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 26 juin 2007 à 17:18
Content que le LargeChange ne pose plus de problème ^^
"En revanche as-tu l'intention d'ajouter la gestion des raccourcis clavier si on ajoute un & dans la propriété caption d'un contrôle ?" ==> Affirmatif. Je pense d'ailleurs que tu me l'avais déjà demandé, mais comme pour FMatrix07, je ne l'avais pas noté dans TODO.txt. C'est maintenant chose faite (j'ai noté dans le fichier TODO), donc dans une MAJ prochaine le '&' sera géré comme étant un raccourci.
"Je suis tout de même surpris d'être le seul affecté par ce manque." ==> Bah perso, je n'utilise jamais les raccourcis ;)
@+
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 28 juin 2007 à 19:53
Salut !
Assez grosse MAJ :
- cochage des Checks dans une vkListBox lors du double clic sur un des Items
- j'ai résolu pas mal de bugs liés au focus et à la touche Tab (merci Mew27 !)
- caché la WindowProc de la vue du projet utilisant ces controles
- ajout de la gestion d'une icone lors du survol d'un vkCommand ou vkToggleButton
- ajouté la gestion des raccourcis des controles ('&' dans le Caption)
- gestion de l'Unicode (pour tous les textes de tous les controles, sauf le .Text de la vkTextBox, j'espère trouver comment faire)
- nouvel exemple + nouveau screen
FMatrix07 ==> Je n'ai pas pu ajouter l'alignement central des Icones parce que je ne sais pas comment gérer la position du texte avec une picture au centre ! (en clair : où veux tu que je mette le texte si la Picture est au centre ? Juste à gauche ou à droite avec la property TextAlignment ?)
Nota : encore quelques bugs avec la gestion de l'Unicode (les FocusRect pas à la bonne dimension, car TextWidth aime pas trop l'unicode ^^)
@+
MadM@tt
Messages postés2167Date d'inscriptionmardi 11 novembre 2003StatutMembreDernière intervention16 juillet 20091 28 juin 2007 à 22:17
Gestion de l'unicode ! hé beh ! y'a du boulot en continu !
En tout cas rien que la capture a vraiment de la gueule ^^
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 28 juin 2007 à 22:51
Héhé, l'Unicode c'était pas très compliqué (DrawTextW au mieux de DrawText), mais là où çà va être marrant, c'est pour permettre d'afficher de l'Unicode dans la vkTextBox (va falloir subclasser je sais pas comment la TextBox...).
Mais c'est vrai que çà rend bien ^^
Bientôt plus de place dans une seule Form pour tout montrer !
@+
FMatrix07
Messages postés233Date d'inscriptionmercredi 26 février 2003StatutMembreDernière intervention21 février 20092 29 juin 2007 à 06:29
Salut VIOLENT_KEN
D'enfer ta nouvelle MAJ mais tu ne t'arreteras jamais enfin j'espere
La gestion de l'icone en cas de survol est impec.
Pour ce qui est de la position center de l'image il est vrai que ça ne peut etre valable que s'il n'y a pas de texte je regarde de mon coté.
Par contre il faudrait que tu vois pour qu'il y ai un retour à la ligne en automatique du texte quand celui ci est trop long pour etre affiché sur une seule ligne ex: dans les vkcommand
Pas mal ton unicode.
Que la force soit avec toi et bon courage
Je regarderai les MAJ suivante avec grand interet
@+
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 29 juin 2007 à 11:30
Ok, je note pour le retour automatique à la ligne !
@+
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 29 juin 2007 à 12:22
Petite MAJ rapide pour ce matin :
- corrigé un bug dans le Timer (quand on changeait les properties Enable et/ou Interval en leur laissant les même valeur, çà provoquait un bug)
- corrigé 2 bugs dans le tri de la vkListBox (en tri inverse de l'alphabétique, le premier Item n'était pas pris en compte + pas de réorganisation des Items si tous sont identiques)
- ajouté le retour automatique à la ligne dans vkCommand et vkToggleButton
Reste à corriger LE plus gros bug (zone blanche à la fin de la vkListBox), j'essaye de le faire aujourd'hui.
@+
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 29 juin 2007 à 20:23
Re, v'là la dernière MAJ de la journée...
La vkListBox n'est plus en Beta2, j'ai corrigé TOUS LES BUGS CONNUS !!
(excepté celui du survol des checks qui foire encore un tout peti peu, à la prochaine MAJ ce sera bon ^^).
Voilà !!
@+ ;)
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 2 juil. 2007 à 11:53
Hello !
Cà y est c'est bon, j'ai supprimé la totalité des bugs rencensés de la vkListBox !!
@+
(svp si vous trouvez un bug, n'hésitez pas à me le dire !)
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 2 juil. 2007 à 22:36
Salut, j'ai attaqué un 17eme controle dont j'avais grandement besoin : le TabStrip (celui de VB étant très pauvre, pas de couleurs.... et surtout TabCount de 255 maximum !)
Chaque Tab est entèrement paramètrable (icone, gradients...), comme pour les Items de la vkListBox.
Que dois-je envisager comme autres innovations par rapport à un TabStrip normal ?
Moi je n'en sais rien vu que je n'utilise habituellement le TabStrip que de manière très basique ?
@+
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 2 juil. 2007 à 22:46
salut,
tabstrip ou sstab?....
surtout les méthodes pour savoir sur quel onglet on se trouve, activer un onglet (simuler click), une icône, le choix individuel de la typo serait un +, autant de backpicture que de tab, un fond transparent? (tu vas galérer là ^^), et surtout qu'on puisse l'agencer en mode design => click sur 3° active le 3° et masque les contrôles posés sur le 1°
des idées en vrac ;)
bon courage ++
MadM@tt
Messages postés2167Date d'inscriptionmardi 11 novembre 2003StatutMembreDernière intervention16 juillet 20091 2 juil. 2007 à 23:05
Ah ouais "agencer en mode design" comme dit PCPT ça serait excellent ! m'enfin ça doit demander du boulot ça !
Mais c'est vrai qu'en l'état des choses c'est souvent pas pratique (le tabstrip de vb)
Félicitation (encore une fois ^^) pour l'avancement des controles sinon
niczob
Messages postés11Date d'inscriptionlundi 23 mai 2005StatutMembreDernière intervention 4 mars 2010 3 juil. 2007 à 11:01
Salut !
je voudrais pouvoir changer l'image d'un bouton dynamiquement, mais manifestement ça ne marche pas. Voilà comment je fais :
De même en passant par les handle (.Picture.Handle = LoadPicture(...).Handle), ça fait une erreur.
Est-ce normal, ou je m'y prends mal ?
PS : pour des idées de nouveaux contrôles, perso j'aurais besoin de sliders au style XP ...
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 3 juil. 2007 à 11:14
Yep, en fait je fait plutôt un SSTab ;)
Pour l'édition en mode design, c'est possible, mais seulement dans une certaine mesure (c'est à dire que contrairement au SSTab où il suffit de cliquer pour changer de Tab, moi il faudra faire Clic Droit -> Modifier -> Changer de Tab).
Et merci pour les idées !
niczob ==> Je vais corriger ce bug. Sinon pour le slider, çà doit pas être trop compliqué, je vais essayer de voir ce que je peux faire...
@+ et merci pour vos commentaires ^^
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 3 juil. 2007 à 11:24
niczob ==> Actuellement, pour réaffecter un nouvelle picture à un de mes controles (vkFrame, vkCommand...), il faut mettre un 'Set' devant.
Exemple :
Set vkCommand1.Picture = LoadPicture(App.Path & "\Ressources\close.ico")
Est-ce gênant et je dois essayer de changer ou c'est bon ?
@+
niczob
Messages postés11Date d'inscriptionlundi 23 mai 2005StatutMembreDernière intervention 4 mars 2010 3 juil. 2007 à 11:43
Je viens de m'en rendre compte pour le Set ... j'ai plus l'habitude de faire du VB6 ( .Net à fond ...)
Ce n'est pas gênant pour moi !
Merci :)
FMatrix07
Messages postés233Date d'inscriptionmercredi 26 février 2003StatutMembreDernière intervention21 février 20092 4 juil. 2007 à 06:31
Hello VIOLENT_KEN
Le SET n'est pas gênant il suffit juste de le savoir
Bonne continuation
Epate nous encore avec ta souce elle nous ravi
@+
niczob
Messages postés11Date d'inscriptionlundi 23 mai 2005StatutMembreDernière intervention 4 mars 2010 5 juil. 2007 à 09:35
Salut Violent_Ken, une remarque sur tes contrôles : apparement les raccourcis claviers, bien que implémentés récemment, ne fonctionnent pas.
Sur une form avec le KeyPreview à True, j'ai placé 2 boutons avec des raccourcis claviers, un VB et un des VK, seul le VB marche.
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 5 juil. 2007 à 09:43
Salut, je viens de faire la même manip (un bouton normal et un vk sur un form, avec ou sans KeyPreview), et çà marche bien.
Tu as bien la dernière version ?
@+
niczob
Messages postés11Date d'inscriptionlundi 23 mai 2005StatutMembreDernière intervention 4 mars 2010 5 juil. 2007 à 15:29
Avec la dernière version ça marche effectivement. J'avais la version du 30/06.
Cool :)
niczob
Messages postés11Date d'inscriptionlundi 23 mai 2005StatutMembreDernière intervention 4 mars 2010 11 juil. 2007 à 15:45
Salut Violent_Ken, j'ai des problèmes de rafraichissement de l'image sur un vkCommand.
Lorsque je clique sur mon vkCommand, l'image disparait sous le click, et ne réapparait qu'en fin de traitement du click, ou/et lorsque je retire la souris de dessus mon bouton ... Bref j'ai un souci de rafraichissement.
As-tu le même problème ?
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 11 juil. 2007 à 17:52
Salut, j'avoue que non, je n'ai aucun problème.
Qu'y a t-il comme code dans le vkCommand_Click ?
@+
FMatrix07
Messages postés233Date d'inscriptionmercredi 26 février 2003StatutMembreDernière intervention21 février 20092 11 juil. 2007 à 23:59
Pour ma part je n'ai aucun probleme
@+
niczob
Messages postés11Date d'inscriptionlundi 23 mai 2005StatutMembreDernière intervention 4 mars 2010 12 juil. 2007 à 13:47
Je viens de faire un nouveau projet avec juste un vkCommand, une image gif dans la propriété Picture, et pas de code dans le bouton.
Quand je clique sur le bouton, l'image disparait, et ne réapparait que si je sors la souris de la zone du bouton.
Je n'avais pas ça avec la précédente version...
niczob
Messages postés11Date d'inscriptionlundi 23 mai 2005StatutMembreDernière intervention 4 mars 2010 13 juil. 2007 à 10:31
Salut Violent_ken, j'ai toujours mon problème de refresh des images dans le vkCommand :/
je me pose une autre question sur ton contrôle UpDown : quand je change la Value du UpDown dans le code, je ne récupère pas cette valeur dans l'évènement 'Change(Value as Currency)'.
Exemple :
Private Sub IncrNbPhoto()
intNbPhoto = intNbPhoto + 1
'Met à jour le UpDown
vkUpDownPhoto.Value = intNbPhoto
End Sub
Private Sub vkUpDownPhoto_Change(Value As Currency)
intNbPhoto = Value
End Sub
la valeur de Value dans l'évènement correspondant à la valeur précédente, et non la valeur actuelle (celle que je viens de lui attribuer). Ce n'est pas le même comportement que la UpDown VB. Est-ce voulu ? (moi ça m'embête ...)
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 13 juil. 2007 à 10:49
Pour le problème d'image lors du survol... ben en fait tu as raison ! Un problème apparait, mais uniquement en compilé (pour çà que je ne l'avais pas vu le premier coup). Je vais essayer de corriger le bug.
Pour le UpDown, j'ai en effet iversé deux lignes de code (le RaiseEvent était avant le changement de Value), je corrige çà.
Merci, @+
JoJo797
Messages postés1Date d'inscriptionvendredi 9 juillet 2004StatutMembreDernière intervention10 août 2007 10 août 2007 à 17:00
Sorry but I'm Italan e I don't speak french. Very nice controls! It's possible to add the "Top Allignment" and "Bottom Allignemet" (insted of the X and Y offset) to the Button Control?
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 10 août 2007 à 17:53
Hi !
Yes you're right, I've forgot the vertical alignment property.
I'll add it in the next update. But as I can't work on it in august, I'll upload the new version in a month.
I'll fix some other bugs I've found recently, and I'll include Renfield's class to do subclassing.
Thx, see ya
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201615 24 sept. 2007 à 12:02
Salut Violent_Ken,
Un petit "truc bizarre", dans le contrôle TextBox, on ne peut pas donner une autre couleur à la propriété : foreColor que le noir...
Ou alors je ne sais pas me servir de ce contrôle ???
A+
Exploreur
cs_loloof64
Messages postés342Date d'inscriptionvendredi 1 septembre 2006StatutMembreDernière intervention 6 novembre 2012 24 sept. 2007 à 13:35
Au grand regret que ta source ne sorte pas en .net, plateforme qui elle, est librement utilisable ...
A bientôt, salut .
Loloof64
pablito222
Messages postés1Date d'inscriptionmercredi 14 juin 2006StatutMembreDernière intervention 5 octobre 2007 5 oct. 2007 à 15:00
bonjour à tous.
Je suis un Espagnol qui visite cette page trés souvent, et je voudrais savoir si l'auteur va la mettre à jour ??
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 5 oct. 2007 à 15:46
Bonjour,
Cà fait longtemps que je n'ai pas fait de mise à jour (à cause de quelques problèmes diverses + peu de temps avec les études) mais je n'ai pas abandonné cette source pour autant.
Je possède actuellement une version plus évoluée que celle-ci, mais je préfère attendre encore quelque temps avant de mettre à jour (pour la prise en compte des demandes de chacun, la correction des derniers bugs rencontrés et le passage au subclassing de Renfield).
J'aurais dû uploader cette version il y a quelques temps déjà (1 mois), mais je n'ai pas pu le faire.
Donc oui, je mettrai à jour, c'est certain, mais je ne peux pas dire quand exactement... Je vous tiendrai au courant ;)
Merci, @+
niczob
Messages postés11Date d'inscriptionlundi 23 mai 2005StatutMembreDernière intervention 4 mars 2010 23 oct. 2007 à 11:33
Salut Violent_ken,
j'ai une question à propos de la gestion de l'unicode : à fonte identique, je n'ai pas la même écriture avec de l'arabe quand je confronte un controle optionButton (par exemple) et un Label de MS Forms 2.0 (FM20.dll) (fonte : Tahoma 10 script arabe).
C'est assez embêtant pour mon boulot :(
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 23 oct. 2007 à 23:15
Salut,
En fait, la gestion de l'unicode est gérée par les dll Windows : j'utilise des fonctions de l'API (en particulier DrawTextW). Du coup, je ne maitrise pas dans mon code l'affichage résultant (il est géré directement par Windows).
Donc je vois pas trop où pourrait se situer le bug... ?
Pourrais-je voir une image montrant la différence entre Forms 2.0 et mes controles ?
Quel lignes de code as tu mises pour afficher l'Unicode (ChrW ?) ?
@+
niczob
Messages postés11Date d'inscriptionlundi 23 mai 2005StatutMembreDernière intervention 4 mars 2010 25 oct. 2007 à 18:05
Salut vk,
voici ce que je voudrais afficher (par exemple, avec une fonte Tahoma) :
Regarde ce que donne cette chaine dans un contrôle MS Forms 2.0 TextBox, et une vkTextBox configurée en useUnicode True, font : Tahoma, script : arabe.
Rassure-toi il n'y a pas de bug dans la gestion de l'unicode dans ton contrôle (d'ailleurs je ne parle pas de "bug").
Effectivement, ton contrôle se contente de faire appel à l'API windows, mais c'est manifestement beaucoup plus compliqué que ça d'afficher une langue telle que l'arabe (jette un coup d'oeil ici si ça t'intéresse : http://www.unicodeactivex.com/UnicodeTutorialVb.htm).
Le truc compliqué c'est de rendre l'écriture "cursive", tout attachée quoi. Il est évident que c'est beaucoup trop de boulot que d'implémenter de tels algos dans tes contrôles ... en ce qui me concerne je vais donc m'en passer et remplacer tous les vkLabel par des MS Forms 2.0 Label (j'ai pas le choix :/).
à+ ! :)
cs_titi2b
Messages postés24Date d'inscriptionjeudi 21 novembre 2002StatutMembreDernière intervention20 février 2010 14 nov. 2007 à 14:23
Bonjours a tous juste un petit commentaire.
Trés beau controles, mais comment peut ont changer ou ajouter mouse pointer sur vkcommand ?
Sinon il est vrai qu'il manque pour finaliser tous ces controles un sstab.
a bientôt
Philippe222
Messages postés6Date d'inscriptionmercredi 21 décembre 2005StatutMembreDernière intervention26 juillet 2009 10 janv. 2008 à 17:35
Bonjour,
Si on fait un large emploi de l'Unicode, il y a toujours un problème quelque part. Mais ici on a presque tout. Toutefois, comment faudrait-il faire pour passer les menus en Unicode et en chinois ?
Merci d'avance
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 20191 15 avril 2008 à 17:28
Bonjour,
Merci pour ces contrôles
Non seulement ils gère l'unicode (ce qui étais un problème pour moi) mais en plus ils sont beau. Ravie 10/10
tharkhun
Messages postés1Date d'inscriptionjeudi 2 août 2007StatutMembreDernière intervention 7 mai 2008 7 mai 2008 à 13:50
Salut a tous,
Je suis débutant (ben oui, faut bien un jour !) et j'ai un petit probleme lors de l'utilisation de ces controles. Il est dit qu'il faut compiler le fichier "vkUserControlsXP.vbp" pour obtenir l'ocx. Seul probleme lorsque je lance la comilation ie s'ouvre et le script est bloqué. j'ai essayé de mettre toutes les sécurités au minimum mais rien n'y fait ! Est-ce que quelqu'un peut m'envoyer l'ocx ou y a t il une solution plus simple ?
Merci
Tharkhun
tombuv@yahoo.fr
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 7 mai 2008 à 14:00
tharkhun -> tu confonds compilation et execution.
un projet ActiveX ne peut pas être lancé seul.
pour compiler, pas "run / F5", juste Fichier > créer vkUserControlsXP.ocx
andalo
Messages postés102Date d'inscriptionlundi 23 avril 2007StatutMembreDernière intervention20 octobre 2012 13 juin 2008 à 11:36
ben bravo, maintenant je refais la déco de mon appli, comme si j'etais pas assez à la bourre comme ça!!
Pour certain c'est inutile pour moi c'est un bonheur, d'une part pour le style (mes chefs vont adorer), d'autre part pour la gestion des évenement et la possiblité d'ajouter les evenements souris a n'impeote quel controle (ca c'est trop fort), ca m'a ouvert des possibilité que je ne n'arrivais pas à gérer avant, merci.
Si ya une SSTab dans les tuyau je suis preneur, par contre je n'ai pas trouvé de combobox, j'aurai pourtant pensé que c'etait un controle de premiere necessité!
andalo
Messages postés102Date d'inscriptionlundi 23 avril 2007StatutMembreDernière intervention20 octobre 2012 13 juin 2008 à 16:56
Apres quelques test simple sur le VkListBox, je n'arrive pas à appliquer un changement de police à un seul item (bold, underline, size...), tous les autres suivent le changement.
Par contre coloriser un item de façon différente (forecolor ou backcolor) fonctionne bien.
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 13 juin 2008 à 23:49
Salut !
Alors déjà désolé si je ne réponds pas à tous les messages (j'ai de moins en moins de temps -___-), mais là il s'agit d'une erreur assez importante et donc voilà la solution : dans vkListBox.ctl, dans la méthode AddItem, il faut remplacer le début du code par çà :
Dim tIt As vkListItem
Dim bOk As Boolean
Dim tF As StdFont
lListCount = lListCount + 1
'redimensionne les tableaux avec le nombre d'items de la liste
ReDim Preserve bChecked(lListCount - 1)
ReDim Preserve bSelected(lListCount - 1)
'ReDim Preserve lHeight(lListCount - 1)
If Item Is Nothing Then
'alors on créé un nouvel Item dont on définit les prop par défaut
Set tIt = New vkListItem
Set tF = New StdFont
tF = UserControl.Font
With tIt
.BackColor = lBackColor
.Checked = False
.Font = tF
De plus, pour bénéficier de la possibilité de changer de fonte PAR item dans la form de test (dans le cas des 100 items avec icone), il faut créer une instance de fonte par Item.
Donc changer dans vkCommand9_Click :
.Font = Me.Font
par
Dim f As StdFont
Set f = New StdFont
f = Me.Font
.Font = f
Et voilà ! Et bien sur s'inspirer des exemples de la form de test pour utiliser mes contrôles.
Sinon, il est maintenant simple de passer un item particulier en gras :
List.Item(1).Font.Bold = True
Merci pour avoir repéré ce bug ^^
Sinon, j'ai modifié pas mal de problèmes entre ma dernière version et celle présente sur vbfrance. Je n'ai pas mis à jour sur vbfrance car c'est assez long de créer un fichier *.zip clean, mais la toute dernière version est disponible sur Sourceforge.net, via SVN (ou en download, mais le package n'est pas à jour non plus ^_^).
http://sourceforge.net/projects/vkusercontrols/ (URL du projet)
URL SVN : https://vkusercontrols.svn.sourceforge.net/svnroot/vkusercontrols
Sinon, j'ai un début de SSTab mais c'est pas terminé (je ne sais pas quand ce sera prêt, faudra probablement être patient ^^).
Pour la combobox, effectivement je ne l'ai pas codée (et ce serait utile), mais il est toujours possible d'en bricoler une en attendant ^^ (vkCommand + vkTextBox + vkListBox visible ou non).
@+
andalo
Messages postés102Date d'inscriptionlundi 23 avril 2007StatutMembreDernière intervention20 octobre 2012 18 juin 2008 à 00:01
Si toi tu t'excuses moi je fais quoi! je rampe sous tes pompes!!!
Merci pour l'astuce du "pseudo" combobox(et bien sur pour la correction du listbox), j'imagine qu'il faux accoler aussi au vktextbox un vkcommandbutton avec un image de flêche vers le bas pour que la vkillusion soit complete!!
Ca peut être rigolo à faire mais j'acceuillerai quand meme l'arrivée du vkcombobox avec joie (des fois que tu t'ennuie et que tu ne saches pas quoi develloper...).
Sinon quite à passer pour un profiteur, une idée de develloepment pour le SStab me viens :
Ce serai un vkSStab qui gère lui meme les redimenssionnement et repositionnement des controles qu'il contient sur un évenement "resize".ou qui gererai lui même l'apparition d'ascensceur.
J'ai comme un doute pour cette derniere proposition, rassurez moi ca n'existe pas deja???
andalo
Messages postés102Date d'inscriptionlundi 23 avril 2007StatutMembreDernière intervention20 octobre 2012 23 juin 2008 à 12:10
bonjour, juste un petit bug à signaler sur le VkListBox.
Lorsqu'on le redimensionne dynamiquement (je fais varier la taille des controles sur l'évenement resize de la form)l'ascenceur ne suit pas, il garde sa taille initiale. Par contre il se reajuste quand on passe la souris dessus.
cs_JLN
Messages postés371Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention17 juin 2013 25 juin 2008 à 16:10
Bonjour VK (et les autres),
Tout d'abord chapeau bas, pour ces controles, même si l'ère est maintenant celle de vista, le look xp a toujours son charme... A quand le SSTab tant attendu ? Je colorise les miens par un hock mais pas terrible en matière de paramétrage...
Merci beaucoup pour ton partage...
Bonne prog à tous.
cs_JLN
Messages postés371Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention17 juin 2013 25 juin 2008 à 16:12
Ha! j'oubliais, un petit bug : dans la demo en cliquant sur la vkListBox "List" on obtient une erreur qui plante tout.
cs_JLN
Messages postés371Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention17 juin 2013 25 juin 2008 à 16:49
C'est encore moi, rien de grave en definitif sur List avec le bouton droit quand la liste est vide, il n'y avait pas de vérification pour savoir si cette liste était vide, en ajoutant dans le if "and List.ListCount > 0" ca devrait corriger (pas essayé, mais confiant)
@+ JLN
andalo
Messages postés102Date d'inscriptionlundi 23 avril 2007StatutMembreDernière intervention20 octobre 2012 26 juin 2008 à 12:32
re petit bug à signaler, j'ai un souci avec le VKTextBox. l'ascencer horizontal ne veux pas dérouler le texte vers le bas, j'y arrive en cliquant dans la zone de texte et avec la fleche clavier, a ce moment l'ascenceur fonctionne pour faire dérouler le texte vers le haut, mais ne fonctionne toujours pas vers le bas
voila, bonne continuation...
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 26 juin 2008 à 19:26
Bonjour tout le monde,
alors je prend note, je corrigerai les bugs la semaine prochaine. Pour la scrollbar de la textbox, je connais le problème (cf description), c'est pas sur que j'arrive à régler tout de suite (bug pas évident).
Pour le SSTab, va falloir que je trouve le temps ^^
Héhé, pour l'ère Vista, je prend également note :-)
@+
andalo
Messages postés102Date d'inscriptionlundi 23 avril 2007StatutMembreDernière intervention20 octobre 2012 27 juin 2008 à 00:08
ouais desolé si je repete des trucs dis plus haut mais je me souviens avoir lu le descriptif et les commentaires d'affilé un jour et à la fin je ne me souvenais plus de ce qui se disait au debut!
A se demander comment j'arrive a programmer avec une memoire de poisson rouge.
En tout cas, j'ai testé les rectificatif pour appliquer les fonts differentes par item, et grand merci, ca me retire une fiere chandelle du pied!
Je me demandais comment faire pour presenter des choix multiples hierarchisé et du coup je peux présenter les données principales en gras et souligné, les secondaires seulement en gras etc....
Apres avoir changé la fonte d'un des items faut quand même penser à faire un vklistbox.refresh sinon ca ne se fait pas automatiquement.
Bon courage
andalo
Messages postés102Date d'inscriptionlundi 23 avril 2007StatutMembreDernière intervention20 octobre 2012 27 juin 2008 à 00:54
oh quel dommage, je viens de me rendre compte que le vklistbox ne gère pas le itemdata, je trouvais ça très pratique pour y stocker les identifiants de mes libellé. Je vais pouvoir le débrouiller autrement ceci dis, mais snif!
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 27 juin 2008 à 08:18
Mais qu'est ce que c'est que le 'ItemData' ??
Si c'est une zone mémoire allouée à chaque Item pour y stocker des données, il y a les attributs tagString1, tagString2 et tagLong pour stocker 2 strings et un long par Item dans mes controles.
Sachant que dans le long (voire les strings), on peut stocker un pointeur vers n'importe quoi (cf strptr, objptr...etc), je pense que çà devrait aller pour stocker "les identifiants de tes libellés".
Si c'est autre chose (?), je regarderai ce que c'est :-)
@+
andalo
Messages postés102Date d'inscriptionlundi 23 avril 2007StatutMembreDernière intervention20 octobre 2012 27 juin 2008 à 09:18
oops, j'avais pas vu, l'itemdata du combobox classique de vb6 sert effectivement à ca. J'ai le choix entre trois maintenant!
Je n'ai plus qu'a aller voir ce qu'est un pointeur (ca fais même pas un an et demi que je programme)
cs_LagPhil
Messages postés8Date d'inscriptionmardi 13 mai 2003StatutMembreDernière intervention20 août 2009 26 sept. 2009 à 10:03
Bonjour, d'abord toutes mes félicitation pour les controles xp, ils sont magifiques.
J'ai juste une petite question.
Voilà depuis 9 ans, je programme un logiciel de maintenance vendu par ma société.
J'aimerais donnée un petit coup de jeune à ce logiciel en utilisant votre OCX pour les controles.
Puis-je le faire gratuitement, ou y at'il une demande particulière à faire.
N'étant pas informaticien, je suis incapable de créer de tels contrôles.
Encore bravo et merci par avance de votre réponse.
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 26 sept. 2009 à 12:02
Bonjour,
aucune demande particulière n'est à faire, vous pouvez utiliser l'OCX directement.
Donc en gros, il est possible d'utiliser sans problèmes ce code dans un projet propriétaire sans avoir à rendre tout le code source du projet propriétaire sous licence libre (et heureusement d'ailleurs !)
Pour simplifier, si vous réutilisez ces controles sous LGPL dans votre logiciel, les restrictions seront :
- conserver le copyright du fichier OCX
- conserver la licence LGPL du fichier OCX et la fournir avec le fichier OCX
Rien ne changera pour votre logiciel de maintenance (grâce au "L" de LGPL ^_^)
@+
andalo
Messages postés102Date d'inscriptionlundi 23 avril 2007StatutMembreDernière intervention20 octobre 2012 25 nov. 2009 à 11:04
Bonjour, Je viens d'essayer vainement d'entrer un caractère de tabulation dans une routine de remplissage pour un vklistbox:
Les essais en remplacant VbTab par vbkeytab, ou chr(9) sont sans résultat
Est ce possible?
philbar71
Messages postés70Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 5 juillet 2013 25 nov. 2009 à 12:06
Quel boulot !
C'est superbe !!!
niczob
Messages postés11Date d'inscriptionlundi 23 mai 2005StatutMembreDernière intervention 4 mars 2010 4 mars 2010 à 09:07
Bonjour Violent_Ken, j'ai un bug avec les tooltips : avec un vkCommand (ou vkToggle) contenant une image, le tooltip ne s'affiche pas lorsque la souris est sur l'image, il s'affiche seulement lorsque le pointeur est à l'intérieur du bouton ET en dehors de l'image.
Je n'ai pas encore regardé le code, mais je ne vais pas tarder à le faire.
17 mai 2007 à 18:46
Je récupère çà (enfin j'espère O_o)
@+
17 mai 2007 à 18:51
Pour les container, chez moi çà marche nickel... Sur quel container as tu posé les Options ?
@+
17 mai 2007 à 19:16
17 mai 2007 à 19:42
Comme déjà dit avant, j'ai codé çà "Comme je bossait à changer l'interface de https://sourceforge.net/projects/hexeditorvb/ "
Et pour des check et option transparents, pour un frame et un command qui acceptent une icone, pour des scolls allant jusqu'à plus de 200 milliards, pour un UpDown inexistant hors Windows Forms 2.0 (non redistribuable)... je suis bien OBLIGE de recoder tout çà !
Si je voulais "avoir du succès" avec une source, j'aurais posté un truc avec "MSN" ou "GTA" dans le titre, crois moi ;)
@+
17 mai 2007 à 21:11
@+
17 mai 2007 à 22:17
@+
17 mai 2007 à 22:25
Je propose par défaut un style XP car je le trouve, personnellement, très classieux, mais chacun peut faire son propre style en modifiant quelques lignes de codes, quelques ressources ou même plus simplement quelques une des nombreuses properties proposées.
"autant utiliser le vrai" ==> Bah oui, mais tout le monde ne l'a pas... et certains contrôles sont pourris (enfin de mon gout) sous Vista (par exemple la scrollbar... je préfère encore la mienne... c'est dire...)
"Tu aurais tout aussi bien pu faire un desgin plus sympa je penses que c'est ce que voulai dire moustachu"
> Je suis pas un expert du design, (très) loin de là... D'ailleurs en cherchant bien, on remarquera que j'ai "piqué" certaines couleurs des contrôles de Renfield... parce que les miennes étaient moches...
Tout çà pour dire que j'ai copié le style XP parce que je l'aime bien et parce que je sais pas faire autre chose -__-
Enfin bon. Prenons l'exemple du controle UpDown : tout est fait dedans (subclassing, events, properties, functions, subs...).
Il n'y a juste qu'à changer la sub Refresh pour changer le style...
@+ (n'hésites pas à te casser la tête sur le bug du Timer haute précision si tu as du temps à perdre ^^)
18 mai 2007 à 00:53
houlaa, vilain le crash pour le timer :D
ce lien peut peut-être t'inspirer ;)
http://www.vbfrance.com/codes/TIMER-OCX-INTERVAL-LONG-MULTI-USAGE-CLASSIQUE-BENCHMARK_32788.aspx
je regarderai tes contrôles dimanche
(sinon des idées.... il manque des pages de propriétés, et une TextBox)
bonne nuit ;)
18 mai 2007 à 01:04
et bien voilà ! J'avais vu il y a quelques temps la technique de la collection d'objets (pour pouvoir libérer un event depuis une callback function extérieure) quelque part sur vbfrance, ben c'était ta source ;)
Je devrais donc pouvoir débuger (j'espère ?)
Pour les pages de propriétés, c'est vrai que c'est mieux... je vais voir si j'ai le temps.
Pour la textbox également, c'est un controle assez complexe à faire (si je pars de zéro comme c'est le cas avec les autres controles), je vais voir si j'ai le temps ou si je pars d'une textbox existante que j'améliore.
@+ et bonne nuit également ^^
18 mai 2007 à 01:34
Violent_ken il est formidable ton code...je vois pas l'intérêt de le faire...Mais sincèrement il est bien noté de ma part.
@+++
-_o
18 mai 2007 à 01:47
Question à part: Comment peut-ton faire bondir un shape sphérique...
@+ Bonne nuit à tous!
18 mai 2007 à 09:54
18 mai 2007 à 10:14
Même avec un *.manifest qui donne le style XP, certains contrôles ne sont pas satisfaisants :
- Option et Check ne gèrent pas la transparence
- Progressbar ne gère pas le Wheel et limitée à 32767
- UpDown uniquement dans Windows Forms 2.0 qui n'est pas redistribuable
- Timer de VB pas assez précis
- Toggle uniquement dans Windows Forms 2.0
- etc...
Donc je vois mal comment faire autrement pour obtenir ces propriétés que de recoder entièrement tous les contrôles...
D'autant que j'ai ajouté des events qui n'existent pas avec les controles classiques (Enter, Leave, Wheel....).
"Comment peut-ton faire bondir un shape sphérique" ==> lol, aucune idée ^^ Qu'entends tu par "bondir" ?
@+
18 mai 2007 à 10:20
@+
18 mai 2007 à 12:46
Déjà que je m'éclate avec ton Ocx Frame, et bien là, je suis aux "anges"...
Bravo
A+
Exploreur
18 mai 2007 à 15:07
Violent_Ken merci pour les clarifications...
Bondir étant rebondir, sauter, sursauter...en voici des synonymes.
Tout comme un ballon.
Merci,
Et Bravo pour la note tu la mérites!
19 mai 2007 à 10:11
Par contre Waluiggi, je ne vois toujours pas ce que tu veux dire par "bondir un shape sphérique" ? Tu veux donner lui un effet de mouvement, comme pour un Command pressé ?
Sinon au passage, le bug du vkHScroll a été corrigé.
@+
19 mai 2007 à 11:28
http://activex.developpez.com/%5BActiveX_&_VB6%5D%20Les%20contr%F4les%20ActiveX.pdf
Je travaille dessus...
@+
19 mai 2007 à 13:41
J'adopte !
19 mai 2007 à 15:08
Au passage, grosse MAJ : j'ai ajouté des pages de propriétés pour chaque controle comme le demandait PCPT !
@+
20 mai 2007 à 03:55
Violent_ken => Qu'est-ce qu'il arrive lorsque tu laisses tomber un ballon de panier à terre? ;|
Alors cela te semble tu un peu plus poussante... J'espère enfin t'avoir fait la bonne description. Sinon, je sais plus quoi te dire à toi de fouiller.
Sur ceux bonne nuit à toutes et tous!
@+
22 mai 2007 à 20:55
Sinon, petit "sondage" : j'ai presque fini un contrôle Listbox (en fait c'est une listview lvwReport à 1 colonne).
Quels seraient les properties souhaitable pour chaque Item ?
Par exemple, chaque Item a actuellement :
- BackColor
- Checked (item checked ou pas)
- Font
- ForeColor
- Icon
- Index
- Selected
- Text
- Height (hauteur de la ligne)
- Alig (alignement du texte)
Genre on peut faire çà pour l'instant : http://www.enregistrersous.com/images/115054356020070522205442.jpg avec en plus Icone et Check (pas encore fini)
Quelqu'un a une idée pour rajouter une property intéressante ??
@+
22 mai 2007 à 22:12
pouvoir choisir la couleur du selecteditem (surlignage)
et pourquoi pas des méthodes FillByFile / SaveToFile ;)
il y a l'alignement? (vu le screen je suppose)
(pas encore regardé ta source mais j'ai DL la dernière maj ;) )
++
22 mai 2007 à 22:16
Ok aussi pour les méthodes FillByFile et SaveToFile, çà peut être très pratique !
Merci pour ces idées, je vais les coder ^^
@+
22 mai 2007 à 22:22
@+
22 mai 2007 à 23:02
j'aurais dit dans les attributs de procédure mais je n'ai pas trouvé
peut-être en typant la propriété comme une "(liste)" mais idem, je ne trouve pas le type réel.
et en générant le code par VB çà donne çà :
Public Property Get ItemData(ByVal Index As Integer) As Long
ItemData = List1.ItemData(Index)
End Property
Public Property Let ItemData(ByVal Index As Integer, ByVal New_ItemData As Long)
List1.ItemData(Index) = New_ItemData
PropertyChanged "ItemData"
End Property
(pour List1 pas vide)
seulement.... beh la propriété n'est même pas affichée
je regarderai plus en détail dès que possible
bonne soirée ;)
22 mai 2007 à 23:06
J'ai appris quelques trucs notamment OLE_OPTEXCLUSIVE (pour les Options, plus simple que ma méthode pour les Containers), mais j'ai rien trouvé non plus pour les Listes -__-
Bonne soirée, @+
23 mai 2007 à 08:42
Je suis bluffé. Ton travail est excellent. Content que tu aies trouvé du temps pour faire tout ça. J'en avais marre de mes applis au design monotone.
J'ai toutefois remarqué que si un option bouton est sélectionné par défaut, celui-ci est grisé. Saurais-tu d'où cela pourrait-il provenir ?
Merci encore,
23 mai 2007 à 08:58
Par contre je n'arrive pas à le reproduire... saurais-tu comment on peut le reproduire ?
@+
23 mai 2007 à 09:04
par contre cette source peut sans doute t'aider. attention les yeux :)
http://www.Planet-Source-Code.com/vb/scripts/ShowCode.asp?txtCodeId=62442&lngWId=1
23 mai 2007 à 09:25
Bon bah tant pis, je laisse tomber... Merci en tout cas pour ton aide.
Sinon pour la ListBox de planet-source-code... WOW ! C'est surtout la vitesse de remplissage qui m'impressionne... moi c'est actuellement 5 fois plus lent, mais bon c'est normal aussi vu que je laisse la possibilité de choisir les properties pour chaque item (donc Set New à chaque AddItem).
Je releaserais la mienne quand elle sera au même niveau ;)
@+
23 mai 2007 à 09:26
Par contre je n'arrive pas à le reproduire... saurais-tu comment on peut le reproduire ?
@+ " --> peut-être que le mieux serait que je te donne mon code et que tu regardes.
J'ai 2 groupes d'option boutons et cela le fait pour les 2.
Dis moi comment je fais pour te donner le code si tu es intéressé ?
++
23 mai 2007 à 09:37
Le problème ne survient que si tu initialises l'option bouton à partir du code. Je le fais dans une sub appelée durant le form_load.
S'il est initialisé depuis les propriétés graphiques, il n'y a effectivement aucun souci.
++
23 mai 2007 à 09:42
Merci encore, @+
23 mai 2007 à 11:38
Le problème était que j'avais copié mon code du même projet sans ton OCX dans la form qui utilise ton OCX en ayant fait attention de garder les mêmes noms d'objet. L'option bouton de VB n'a que 2 valeurs possibles (false, true) alors que ton OCX en a 3. Apparemment quand je lui dit à l'init de la form de le positionner à "true", il l'interprète comme "2". Si je lui mets "1", il n'y a plus de problème.
Désolé de t'avoir pris du temps.
++
23 mai 2007 à 12:06
Me trompe-je dans l'utilisation de ton objet ?
++
23 mai 2007 à 12:11
Mais tu as raison, je vais remettre l'évênement Click dans la prochaine MAJ.
Merci pour ces conseils qui aident à améliorer ma source !
@+
23 mai 2007 à 12:15
++
23 mai 2007 à 12:17
N'hésites pas si tu as d'autres remarques ;)
@+
23 mai 2007 à 13:59
Le fait que ce soit différent n'est pas dérangeant pour moi.
++
23 mai 2007 à 19:22
> En fait trop pas... c'est juste que je rafraichisait 10000 fois le VScroll. Mon controle sera en fait plus rapide qu'une ListBox classique en terme de remplissage.
Je release sans doutes ce week end. (je retourne à mes révisions de physique... DAMN !)
@+
26 mai 2007 à 00:17
- ajouté l'évenêment Click du Check
- optimisations et correction de bugs dans les Scrolls et UpDown
- ajout de la vkListBox ! VERSION BETA, je poste pour avoir vos avis sur les trucs à ajouter, enlever....etc.
Cette vkListBox est buguée, je le sais (notamment au niveau du Scroll), mais bon, donnez moi toujours les éventuels bugs que vous recontrerez.
Merci, @+
(ListBox presque aussi jolie que celle de PSC, en tout cas plus configurable ^^)
26 mai 2007 à 00:25
par contre en passant, la scroll pourrait être un unique contrôle, avec le choix vertical/horizontal
(çà repasserait à 12 :D)
la listbox a t'elle une scroll horizontale? (à découvrir dans un instant)
ps : tes contrôles sont tout de même construit sur des objets (image, picturebox, ...). tu gagnerait en resources en passant par une classe
@+ tard ;)
26 mai 2007 à 00:29
26 mai 2007 à 00:30
Sinon oui, VScroll et HScroll pourraient être dans un seul UserControl...
Et oui, la listbox est pour l'instant (çà peut changer, de toutes façons il manque plein de trucs comme le tri...etc) avec une unique colonne, et une unique VScrollbar (bonne idée pour la HScroll, çà peut être intéressant).
Et en effet, les controles sont construits sur des objets, mais je n'ai pas la maitrise suffisante de gdi et des APIS avec un "DC" dedans pour tout passer en virtual ;) Quand j'aurais plus d'expérience dans le domaine, je l'envisagerai.
Sinon faut pas trop faire gaffe aux bugs de la listbox, j'ai posté çà comme une "base".
PS : je checke le zip et je réupload si nécessaire
@+
26 mai 2007 à 00:34
Par contre le fichier clsvkListItems est pas utile pour l'instant, je n'ai pas encore fixé vraiment la méthode qui sera utilisée pour les Items.
Voir ce thread : http://www.vbfrance.com/infomsg_ACCES-LENT-COLLECTION-POUR-ITEMS-FIN_949183.aspx#9
@+
26 mai 2007 à 01:12
si on supprime la scroll, la zone reste blanche (emplacement non-occupé)
le label plante VB ^^
(ouverture de l'interface du label (ctl) avec juste la form en arrière plan (en design évidemment), lors de la fermeture du label, boom
vérifie que le subclassing ne soit bien activé QUE en execution.
NB : attention, un ctrl DANS un crtl est TOUJOURS en execution (ambient.usermode)
NB : lors de manip de ce genre, le terminate peut avoir lieu avant le initialize. bien penser à fermer le subclass QUE s'il est ouvert
ps : tu utilises des timers VB dans tes UC, pourkoi pas le tien?
ccl pour ce soir : design très sympa, pas spécialement XP et c'est tant mieux.
un regret : les pages de propriétés. pratiques mais j'entendais particulièrement des exemples préchoisis, permettant une config des toutes les couleurs par exemple.
autre regret : consomme beaucoup trop de ressources. la form met plus de 10 secondes à s'afficher chez moi :(
j'ai déjà été plus constructif, désolé...
++
26 mai 2007 à 01:29
Pour l'histoire du scroll, il y a en effet beaucoup de problèmes...
Pour le label, je ne suis pas arrivé à reproduire le bug ??
Pour les timers... bah le mien marche toujours pas ! Et puis vu la stabilité de VB... ajouter un vkTimer avec fonction de CallBack dans un UserControl Scroll qui possède des procédures de subclassing, UserControl Scroll qui est lui même posé dans un autre UserControl subclassé ==> crash à tous les coups ;)
"vérifie que le subclassing ne soit bien activé QUE en execution." ==> Yep, si tu veux référer au VS de la listbox, certains crash doivent venir de là ! Merci pour l'info.
"pratiques mais j'entendais particulièrement des exemples préchoisis" ==> Pas de pb, de toutes façons elles sont "de base" (j'ai juste mis la liste des properties, et j'ai pas fait celle de la listbox).
Par contre là j'ai (très) peur :
"autre regret : consomme beaucoup trop de ressources. la form met plus de 10 secondes à s'afficher chez moi :("
> 10 secondes ??? Dis moi que c'est le *.vbg non compilé que tu as démarré.... parce que si c'est le *.exe compilé, OUCH !!!!
Chez moi, le *.exe met moins d'une seconde (en enlevant les instructions du Form_load), cad à peu près comme les controles de Renfield ?
Merci encore, @+ (pourrais-tu confirmer pour les 10s dans quel cas c'est ? compilé, vbp, vbg... ?)
26 mai 2007 à 01:58
en tout cas la lenteur est due à la lourdeur...
presque 1000 lignes à chaque fois, peut-être voir à subclasser par instanciation/implements (pas toute cette saisie bien trop volumineuse)
comme ceux de Rey, beh de mémoire sa form exemple ne contient que 2 3 contrôles, faudrait tester dans les mêmes conditions
exemple de couleurs, je fais référence à ce genre de choix :
http://www.vbfrance.com/codes/NEUROBUTTON-BOUTON-TRES-CUSTOMIZABLE_34379.aspx
en attendant, le code est très aéré, assez facile de s'y retrouver
bravo ;)
26 mai 2007 à 03:37
Violen_Ken;Laisse tomber pour la question...
P.S Cette conversation n'a pas l'air d'avoir un fin
26 mai 2007 à 09:42
PCPT ==> Ok je vois pour les propertypages ^^
Je suis un peu soulagé pour les 2s ;) C'est trop, mais c'est mieux que 10^^ Mais je peux gagner énormément de temps : je me suis aperçu que par exemple le togglebutton était rafraichit 3 fois lors du lancement, la bar 2 fois...etc, alors qu'une seule suffit largement. Reste à savoir d'où çà vient, et je corrige.
Pour ceux de Renfield (un peu un référence pour moi^^), j'ai regardé avec le même nombre approximatif de controles de même nature pour la comparaison.
Waluigii ==> Ok, comme tu voudras.
@+ et merci
26 mai 2007 à 09:46
les sources ne dont pas faite pour poser des questions qui auraient éventuellement leur place sur le forum ;)
26 mai 2007 à 10:16
exemple pour le caption du tooglebutton => Me.Caption =... au lieu de sCaption =...
à voir pour chaque controle, chaque propriété liée au propbag ;)
27 mai 2007 à 10:00
@+
27 mai 2007 à 11:03
@+
27 mai 2007 à 16:25
- ajout de clsFastCollection qui permet d'aller beaucoup plus vite (ne rame plus lors de la lecture du 20000eme élément de la liste !!)
- ajout de nouveaux events/properties dans la listbox
- bugs listbox corrigés
- nouveau screenshot (montre la possibilité d'une fonte par Item)
- possiblité de changer l'aspect de la scroll de la listbox
- stabilité grandement accrue par le démarrage du subclassing de la VS DANS la listbox (au passage, cette VS est un nouvel UserControl privé qui ne gère pas le subclassing par lui même)
Il reste donc à faire :
- PropertyPages comme conseillé par PCPT
- Sorted de la listbox
- corriger tous les bugs liés à la VS de la listbox
@+, bientôt fini ^^ (je posterais sur planetcodesource au début du mois de juin)
27 mai 2007 à 18:52
@+
27 mai 2007 à 21:38
avant dernière maj -> beaucoup plus rapide (3sec en IDE). impeccable
par contre j'ai regardé le code et idem pour les 2 nouvelles classes : tu ne détruits pas les éléments
tableau => erase
collection d'objet => set nothing item puis remove item en boucle puis set nothing coll
objet => set nothing et/ou avec varptr comme tu en a fais la sub (qui ne semble pas être utilisée partout dans la classe elle-même du moins)
bonne idée pour la VS privée. un hic néanmoins, çà alourdi (forcément) et çà te force une double maintenance à chaque maj.
pourquoi ne pas ajouter une propriété que le dev doit modifier? + une sub pour démarrer le subclassing
genre IsUCChild... si oui et que mode exe DU PARENT (donc de l'uc container) alors le container appelle la sub StartAsynchronousSubClass par exemple...
j'sais pas si je me fais comprendre...
et bien sur en fusionnant le VS et HS, gain final encore plus conséquent
c'est qu'une idée...
++ ;)
27 mai 2007 à 22:16
Pour le VS privé, c'est vrai que çà stabilise énormément l'IDE, bien que çà alourdisse pas mal.
Je vais voir si je trouve un moyen d'alléger tout çà (pourquoi pas inclure la VS DANS le code de la ListBox ?) Pour l'idée du StartAsynchronousSubClass, çà peut aussi être une solution en effet.
Merci encore pour tes commentaires constructifs ^^
@+
27 mai 2007 à 22:28
double voir quadriple maintenance (si tu ajoutes le HScroll)
ou tu transformes en class que tu implémentes dans ton VS, et idem dans ta LB
mais.... si le dev se fait un UC intégrant ton Scroll (UC, pas la classe), il se retrouvera avec le même pb
27 mai 2007 à 23:29
Et puis certaines redondances seraient supprimés (notamment un seul subclassing et une seule WindowProc).
Pour l'implémentation pourquoi pas, mais je suis pas encore très familier avec çà ^^
Je verrais demain, mais c'est sur que c'est optimisable.
@+ et merci
28 mai 2007 à 00:38
- le timer MARCHE, mais est STRICTEMENT identique à celui de VB (avec SetTimer et KillTimer).
Pour avoir la haute précision, faut décommenter les lignes commentées et commenter les lignes KillTimer et SetTimer (qui ne sont pas précises), mais la haute précision bugue toujours (je commence à croire que çà vient pas de moi, mais que çà ne marche pas tout court).
@+
1 juin 2007 à 12:15
- optimisé quelques trucs
- corrigé des bugs
- ajouté FileList, FolderList et DriveList (voir le screenshot).
Par contre j'ai un problème : je n'arrive pas à libérer la mémoire des icones quand le Path de la listbox change -__- Si vous avez une idée ...
@+
1 juin 2007 à 12:41
Si vous avez une idée pour corriger ;)
@+
1 juin 2007 à 20:40
Les modes FileList, FolderList et DriveList sont pleinement fonctionnems !
@+
1 juin 2007 à 23:26
beh je vais toujours pas noter...
*vérifie les chemins (encore ^^)
*de nouveau très long à charger (7s IDE)
multiples bugs avec les nouveaux composants :
*survole check OK mais reste surcolé mêem hors zone => si on refresh par le chargement d'une autre dossier, le check reste survolé à la même position. (demande si pas clair)
*toujours des pb de scroll, donnant parfois un dossier vide comme résultat (faut re-scroller)
*l'exploration des dossiers semble éronnée (testée avec un CD en cours d'utilisation, 2 dossiers : un seul affiché. exploration du dossier : un mp3 trouvé mais pas les 15 sous-dossiers). y'a t'il aussi l'option de l'affichage des fichiers/dossiers cachés?
*les icônes ne sont pas détourées :$
*une form2 s'est perdue ^^
*une "personnalisation" est en vue?
je n'ai toujours pas regardé le code, possible ce soir si tu veux...
bon courage ;)
1 juin 2007 à 23:37
- "vérifie les chemins" ==> bizarre, j'ai re-téléchargé le zip je n'ai pas de problèmes ?
- "de nouveau très long à charger (7s IDE)" ==> Yep, mais le temps IDE représente de moins en moins au fur et à mesure que le projet grossit : le temps IDE augmente énormément, mais le temps compilé reste relativement court (une seconde chez moi). Cela dit je peux surement faire mieux ;)
- "survole check OK mais reste surcolé mêem hors zone" ==> exact, je change çà ^^
- "toujours des pb de scroll, donnant parfois un dossier vide comme résultat (faut re-scroller)" ==> oui, toujours les problèmes de scroll... j'ai pas encore vraiment planché dessus, je vais m'y mettre.
- "l'exploration des dossiers semble éronnée" ==> bizarre, je n'ai pas eu de problèmes ? Le listing des fichiers/dossiers/drives vient directement d'une de mes sources (FileSystemLibrary) qui marche ?
-"y'a t'il aussi l'option de l'affichage des fichiers/dossiers cachés?" ==> pas encore, mais je vais en mette une (caché, systeme, RO..., pas de problèmes ;) (c'était un reproche que je faisait avant aux Dir et FileList)
- "les icônes ne sont pas détourées :$" ==> raaah, si seulement je connaissais mieux gdi32... ;)
- "une form2 s'est perdue ^^" ==> lol oui ;)
- "une "personnalisation" est en vue?" ==> çà viendra, c'est promis !
Encore MERCI pour tous les conseils, je vais pouvoir débuger et améliorer ! Merci !
@+
1 juin 2007 à 23:51
@+
1 juin 2007 à 23:58
J'ai également réglé le bug du check des Listes qui reste en surbrillance.
Le reste dans une deuxième MAJ dimanche ;)
@+
3 juin 2007 à 13:10
Il ne reste donc comme bugs uniquement ceux liés aux Scroll il me semble.
@+
3 juin 2007 à 14:26
Opt et Check -> ne sont réceptifs que sur l'image et le caption. faut vraiment viser (on ne peut pas cliquer à l'intérieur d'un "o" par exemple)
listbox... çà va pas :D
ok tu gères le in out pour ne plus surligner. mais l'item check ne se surligne plus alors si on le resurvole (il faut d'abord en surligner un autre)
scroll, il doit y avoir vraiment un énorme problème oui...
au refresh de ta vkListBox j'ai ajouté VS.value = 0
si j'ai bien vu çà lance le Paint (donc refresh SI tests ok)
boom, dépassement de pile
pour le temps en IDE, inchangé. il manque des tests ambiant.usermode (et parent si UC, comme indiqué précédemment)
t'a oublié le form2 :p
vkTimer et vkMouseKeyEvents -> maskcolor blanc, maskpicture = picture (le copier coller fonctionne), backstyle transparent
(il faut refaire l'image pour le timer. en bmp d'un pure blanc :p)
çà détourera sans prendre de ressource
çà sera tout pour aujourd'hui ^^
++
3 juin 2007 à 14:49
"ok tu gères le in out pour ne plus surligner. mais l'item check ne se surligne plus alors si on le resurvole (il faut d'abord en surligner un autre)" ==> c'est vrai ! je vais voir çà.
"pour le temps en IDE, inchangé. il manque des tests ambiant.usermode (et parent si UC, comme indiqué précédemment)" ==> yep c'est vrai, mais de toutes façons il faut utiliser les controles en compilé ;)
"t'a oublié le form2 :p" ==> erf oui
Merci, je vais mettre à jour pour les premiers bugs.
@+
3 juin 2007 à 16:11
Même si c'est long à charger dans l'IDE, je n'y peux plus rien (j'ai vérifié, chaque controle ne se Refresh qu'une seule fois).
@+
4 juin 2007 à 14:45
Je ne comprends pas pourquoi tu as fait une listbox avec une listview. Pourquoi ne pas garder la listview en tant que telle et laisser ceux qui veulent la limiter le faire eux-mêmes ?
As-tu envisagé de créer un Flexgrid hiérarchique au style XP un jour ? Je suis intéressé.
Je trouve que c'est le meilleur contrôle pour afficher des listes de données même non hiérarchisées. Enfin, ce n'est qu'un avis personnel.
En tout cas, merci encore pour tous tes contrôles. j'avais oublié de te noter. Bien sûr c'est un 10 que je t'octroie.
++
4 juin 2007 à 18:56
"pourquoi tu as fait une listbox avec une listview" ==> en fait c'est le contraire, j'ai fait une listview avec une listbox ;) Comme son nom l'indique (vkListBox), c'est une Listbox, mais tellement plus riche que celle de VB qu'elle se rapproche d'une ListView à une colonne.
Je n'ai pas fait directement une ListView car je l'ai jugée - au départ - trop complexe, mais je ferais peut être un jour un vraie ListView.
"As-tu envisagé de créer un Flexgrid hiérarchique au style XP un jour ?" ==> Pas encore (j'utilise jamais le controle FlexGrid), je vais voir si c'est jouable, et pourquoi pas (mais quand j'aurais le temps ^^, fin d'année oblige ==> partiels, DS... ^^)
Merci pour le commentaire et la note, @+
4 juin 2007 à 21:42
Application : cliquez sur un item de la liste de droite avec le bouton droit...
@+
4 juin 2007 à 21:48
Tout comme un Listview vide quand on fait :
Private Sub Command1_Click()
Me.Caption = LV.ListItems.Item(1).Text
End Sub
@+
5 juin 2007 à 10:40
J'ai remarqué que tes contrôles ne sont pas sensibles aux raccourcis clavier ajouté grâce au & dans le caption des contrôles.
Ce n'est pas si grave mais pour un fondu du clavier comme moi, c'est un peu gênant.
++
5 juin 2007 à 17:47
Je ne l'avais pas encore fait remarquer, mais tes contrôles sont excellents ! (je pense que tu l'avais compris)
Je ne sais pas si cela a été dit plus haut (je n'ai pas tout lu), mais il y a un bug avec les boutons et la propriété Enabled : quand un bouton est disabled, il est bien grisé, mais on peut encore cliquer dessus. Ce n'est pas un problème en soit, c'est contournable, mais je tenais à faire part de cette remarque.
5 juin 2007 à 19:12
niczob ==> Dis le moi, si tu veux que je passe en LGPL. Sinon pour le bug du Enabled, je vais voir çà, merci ;)
@+
6 juin 2007 à 19:51
@+
6 juin 2007 à 20:14
Par conséquent, il est maintenant possible d'utiliser ces controles dans une application commerciale sans en changer la license.
@+
7 juin 2007 à 23:49
Si quelqu'un essaie de faire tourner le code sous Windows2000, merci de me tenir au courant du résultat ^^
@+
8 juin 2007 à 06:33
"quelqu'un" raconte n'importe quoi^^
au pire dit lui d'ajouter initcommoncontrols au démarrage de l'exe pour tester, si çà résoud le pb alors ajoute un module et sub Main à l'ocx pour faire cet appel.
possible que çà vienne de sa version de comctl32.ocx.
autrement dit soit ses SP de Win, soit pas le SP6 de VB (je penche pour çà)
++ ;)
8 juin 2007 à 10:31
Parce que Renfield vient de me rapporter qu'il avait le soucis avec XP !
"Même soucis : ils sont tout noir, jusqu'à ce que je les survole… (je suis sous Xp, au boulot…)"
Même problème que la personne de PSC : "I'm using W2K and half the controls didn't paint, were just black, till I moved the mouse over them."
C'est vraiment bizarre. L'entrée de la souris sur les controles a pour but d'activer le message WM_MOUSEHOVER et donc de lancer un Refresh.... mais ce Refresh aurait du être lancé bien avant (lors du Resize).
Damn !
@+
8 juin 2007 à 10:45
je ne vois que çà pour y remédier : Declare Sub InitCommonControls Lib "comctl32" ()
8 juin 2007 à 10:50
Je pense que c'est la procédure UserControl_Resize qui n'est pas exécutée (car c'est elle qui Refresh le controle lors du chargement).
@+
8 juin 2007 à 11:00
Tu permets que j'abrège ton pseudo ?
Je te prie de bien vouloir excuser mon ignorance mais aurais-tu un exemple d'utilisation d'un scroll vertical. En fait, j'utilise un MSHFlexgrid qui a déjà un scroll intégré. Toutefois ce scroll fait tâche avec le reste de mon appli. J'aimerais donc utiliser ton scroll vertical. Je n'ai jamais utilisé de scroll auparavant et je n'ai pas réussi à trouver d'exemples d'utilisations de scroll. Je ne comprends pas comment on sait quand le scroll descend ou monte en particulier
Merci
8 juin 2007 à 11:22
(sauvagerder celui d'origine au préalable)
8 juin 2007 à 11:32
Alors pour utiliser ma VScroll dans un MSHFlexGrid, voilà comment tu pourrais faire :
- enlever les scrollbars du Grid (MSHFlexGrid1.ScrollBars=0)
- poser un controle vkVScroll à côté du Grid
- récupérer un changement de valeur du Scroll. Il y a pour çà plusieurs évênements, le plus simple étant Scroll_Change. Tu récupère donc la valeur du Scroll (vkVScroll1.Value) dans le Scroll_Change, et en fonction de çà, tu changes la première colonne visible de ton Grid en changeant la propriété TopRow. Après, il faut ajuster le Max de la Scroll à chaque fois que tu ajoutes ou enlèves une ligne.
J'espère que çà t'aideras ^^
PCPT ==> En fait, Renfield est arrivé à faire marcher les controles sur un PC où çà buguait : c'est apparement l'ordre d'appel de ReadProperies, Initialize, Resize...etc. qui est changé sur certains PC, d'où une mauvaise gestion de l'appel au Refresh.
Merci, @+
8 juin 2007 à 12:00
Merci encore.
8 juin 2007 à 23:51
- correction du bug des controles tout noirs
- ajout d'un OCX de gestion du SysTray avec gestion automatique du crash d'explorer par hook.
@+
8 juin 2007 à 23:51
10 juin 2007 à 15:40
- ajout de la vkTextBox : c'est une classique + zone légende qu'avait inventée Renfield + numérotation des lignes + fonctions pratiques qui manquaient à la vbTextBox (GetLine, LineCount...etc.)
@+
10 juin 2007 à 15:44
10 juin 2007 à 15:52
Je sais très bien que c'est moche, surtout pour ceux qui ont un thème non XP (classic ou vista) ^^
Je livre une version fonctionnelle pour voir si des gens trouvent des bugs autres que ceux liés aux Scrolls (qui sont TRES nombreux dans la version scrolls perso -__-).
Cà va venir ;)
@+
10 juin 2007 à 20:12
Je planche sur la HScroll ^^
@+
11 juin 2007 à 10:21
Pour info, la propriété TopRow reste à 0 quand la propriété ScrollBars est à flexBarScrollNone pour un MSHFlexgrid. Pour utiliser ton scroll, il faut donc afficher le scroll de la MSHFlexgrid.
Je vais tester ton nouceau scroll car avec l'ancien, cela ne marchait que moyennement bien. Je ne sais pas si cela vient de mon code ou de ton scroll car c'est la première fois que j'utilise un scroll externe à un objet.
Je teste et si je n'y arrive toujours pas, je te montrerais mon code pour voir si je fais des erreurs.
++
11 juin 2007 à 10:52
Dans le scroll de vb, l'événement Change, ne comporte aucune variable alors que le tien en contient une appelée Value de type Currency. Est-ce normal étant donné qu'il y a déjà la propriété Value pour le scroll ?
++
11 juin 2007 à 10:56
Cela dit, pourrais-je te demander ton code pour que je voie où çà bug avec ma scroll ? Histoire que je corrige ma source si nécessaire ^^
Merci, @+
11 juin 2007 à 14:05
Je viens de m'apercevoir qu'après avoir réenregistré ton OCX, tous les nouveaux contrôles n'y sont pas alors qu'en créant un nouveu projet et en ajoutant ton OCX, il n'y a pas de problème. Sais-tu pourquoi ? Ai-je mal fait quelque chose ?
11 juin 2007 à 14:16
Je te conseille de :
- désenregistrer tous les vkUserContolsXP.ocx présents sur ton disque
- recompiler la dernière version
- créé un nouveau projet et ajouter l'OCX (tu fais CTRL+T -> Parcourir et tu sélectionnes celui que tu viens de compiler)
- un nouveau OCX est coché dans la liste. Si plusieurs portent le même nom, alors il y a un conflit (plusieurs versions)
- clique sur OK et vérifie que les controles sont bien tous ajoutés au nouveau projet
- enregistre le projet
- ouvre le fichier *.vbp avec le bloc notes
- récupère la ligne qui ressemble à "Object={663909D2-4D55-47D5-BF80-43B9F88E5480}#61.0#0; vkUserControlsXP.ocx"
- ouvre TON projet
- remplace la ligne Object=.... par celle obtenue dans le nouveau projet
- sauvegarde
- relance ton projet
- et espère !!!
N'hésites pas si tu as des questions ;)
@+
11 juin 2007 à 14:22
Je vais quand même testé ta manip en priant.
Merci.
11 juin 2007 à 14:26
@+
11 juin 2007 à 15:03
Je ré-upload çà tout de suite, mais par contre la TextBox sera une BETA (j'ai pas encore fini de régler quelque problèmes avec la HScroll).
@+
11 juin 2007 à 15:29
- zip corrigé : plus de fichier OCX dedans, plus de compatibilité entre projets et plus de mauvaises références. Démarrez simplement le fichier *.vbg ;)
- ajout des scrollbars perso dans la vkTextBox (et voilà PCPT ^^). Par contre j'ai sacrifié les property RoungAngle et BreakCorner, et de plus la HScroll ne fonctionne pas encore correctement, mais çà ne saurait tarder.
@+
11 juin 2007 à 16:17
Où puis-je te l'envoyer ?
11 juin 2007 à 16:20
@+
11 juin 2007 à 16:21
Désolé pour la perte de temps.
++
11 juin 2007 à 17:50
Pas parfaite, elle bug un peu (beaucoup ?). En plus elle est pas compatible avec la VScroll (entendre pas là que en mode HScroll activé, LineCount ne marche plus...)
Par contre la VScroll (celle qui est vraiment utile) marche nickel ;)
@+
15 juin 2007 à 13:50
- ajouté un nouveau controle (vkScrollContainer), voir exemple pour comprendre à quoi çà sert ;)
- corrigé des bugs dans la vkBar (maintenant c'est ok pour utiliser la fonction Interactive, l'exemle est donné en bas à droite de la form, dans le vkScrollContainer)
- corrigé des bugs dans vkCommand et vkToggleButton (plus de problèmes dans le ReadProperties)
- nouvel exemple et nouveau screenshot.
MSergio a mis en avant un bug dans les Scrolls, je planche dessus et je mettrais prochainement à jour !
@+
15 juin 2007 à 18:53
6 styles par défaut :
- Normal
- XP
- Plastik
- Galaxy
- Office
- JAVA
@+
17 juin 2007 à 09:40
Je regarde toujours cette source avec plaisir et je surveille les maj car je trouve ta source d'enfer.
Par contre il ya un bug dans la dernier mais rien de grave c'est que tu as laissé les liaisons pour le vkScrollContainer.ctl avec ton projet STYLE-XP-15-USERCONTROLS.
Sinon si tu veux une autre evolution à faire tu peux ajouter une image qui change sur tes boutons command quand tu passe la souri. Vu que tu as deja une image possible il te reste juste à ajouter une autre image et tester si la souri passe sur ton bouton pour changer l'image.
Bonne continuation
FMATRIX07
PS je mets 11/10 bien que ça prenne pas mal de ressource d'utilser cette OCX ne pourrait on pas diminuer cela ?
17 juin 2007 à 10:00
Dans la MAJ, j'ai également
- corrigé quelques autres bugs (orientation de la Légende et quelques autres)
- ajouté la gestion du Pattern pour la ListBox (en mode FileListBox)
"Sinon si tu veux une autre evolution à faire tu peux ajouter une image qui change sur tes boutons command quand tu passe la souri. Vu que tu as deja une image possible il te reste juste à ajouter une autre image et tester si la souri passe sur ton bouton pour changer l'image." ==> Oui pourquoi pas... je pense que je le ferais dans la prochaine MAJ ^^
"bien que ça prenne pas mal de ressource d'utilser cette OCX ne pourrait on pas diminuer cela ?" ==> Hum, effectivement c'est très long à démarrer le *.vbg, mais sinon en compilé çà rend nettement mieux. J'ai commencé à inclure mes controles dans mon projet Hex Editor VB, et çà tourne assez bien. Cela dit il y a sans doutes moyens d'optimiser tout çà, çà viendra au fur et à mesure des MAJs de cette source ;)
Mais concernant la form de test, elle est bourrée de controles (+ de 80) et il y a quelques boucles au démarrage ==> prend du temps à charger. Dans un projet normal (10-30 controles par form), c'est plus rapide.
@+ et merci.
17 juin 2007 à 10:32
Sinon tu pourrais ajouter dans la position de l'image l'option Center en plus de Right et Left dans les boutons command
@+
17 juin 2007 à 13:48
Sinon pour te répondre plus concrêtement, les optimisations (et donc la légereté) viendront avec l'utilisations massive d'APIs graphiques (plutôt que Line, Print...).
J'ai déjà trouvé comment faire un gradient avec les APIs, reste donc que j'arrive à me passer des PictureBox et autres controles grâces aux DCs et c'est gagné ;)
(enfin faudra être patient :p)
@+
17 juin 2007 à 13:54
@+
17 juin 2007 à 14:19
Egalement j'ai pris en compte le Enabled du vkListBox (le controle est différent quand il n'est pas Enable : grisé...etc)
@+
17 juin 2007 à 22:12
Il est vrai que ça soulage un peu le proc et le fait de passer en création gradient diminurai encore plus.
Courage petit scarabé !!! LOL
Au fait j'ai retouvé le boutton control qui utilise 2 images si ça te dis
@+
FMATRIX07
21 juin 2007 à 06:47
Sais tu comment faire pour faire un appel de tes controles comme avec ceux de VB
je m'explique j'ai un bouton command1
avant il m'arrivait de faire dans mon code command1_click ou meme command1.value=true
mais quand je passe avec le vkcommand1 je ne peux plus l'appeller avec vkcommand1_click ou meme vkcommand1.value=true car inconnu
Merci de ton aide
FMtrixà7
21 juin 2007 à 09:14
et si tu appelles d'une autre feuille, il faut évidemment changer la portée de l'évènement (public) comme c'est aussi le cas pour les contrôles VB
++
21 juin 2007 à 14:12
Truc HS : si quelqu'un sait lire le japonais : http://www.mndsoft.com/blog/article.asp?id=924 (O_o)'
@+
21 juin 2007 à 14:28
manque les ref FR dans la source lignes 1 2 4 et 5
21 juin 2007 à 14:42
"manque les ref FR dans la source lignes 1 2 4 et 5" ==> Je comprend pas vraiment ?
@+
21 juin 2007 à 14:59
çà semble être du coréen
http://translate.google.com/translate?u=http%3A%2F%2Fwww.mndsoft.com%2Fblog%2Farticle.asp%3Fid%3D924&langpair=ko%7Cen&hl=fr&ie=UTF-8&oe=UTF-8&prev=%2Flanguage_tools
çà parraît bien bizarre tout çà....
21 juin 2007 à 15:08
C'est en fait une traduction du code que j'ai déposé sur planet-source-code, avec un nouveau screenshot. Donc sans doutes quelqu'un qui a téléchargé mon code sur PSC et qui l'a uploadé ici ?
Je suis tombé dessus par hasard hier, et comme j'ai vu "bug" dans les commentaires, je cherchais juste à savoir ce qui était écrit !
@+
21 juin 2007 à 21:21
J'ai bien vu ton message je vais essayer pour le moment j'utilise
vkcommand1.WindowProc vkcommand1.hwnd, WM_LBUTTONDBLCLK, 0, 0
et ça fonctionne
FMatrix07
22 juin 2007 à 02:32
un contrôle, lors d'un évènement (comme le click) renvoie (raiseevent) l'évènement approprié.
dans ce code le dev met ce qu'il veut
private sub UC_Click(): msgbox "clické": End Sub
cet évènement n'est ni plus ni moins qu'une procédure, sauf qu'elle est disponible dans la liste des évènements de l'UC
donc tu peux l'appeler à n'importe quel moment.
pour l'effet visuel il faut en effet déclencher l'évènement parent (celui qui fera le raiseevent)
pour un Click, par exemple en déplaçant la souris et en cliquant (SetCursorPos + mouse_event).
toi ici, ce que tu fais, c'est appeler la WinProc en lui attribuant des params.
ouai çà marche, mais c'est tout sauf propre (tout comme déplacer la souris d'ailleurs)
tit problème de conception non? ^^
Violent_Ken -> WinProc en Friend, çà passe? sinon au pire des cas AU MOINS la masquer (attributs)
ps : toujours pas regardé ta source en profondeur mais je n'y manquerai pas ;)
++ ;)
22 juin 2007 à 06:28
Non je ne voulais pas faire de clique visuel mais je me suis complié la vie, j'etais partir sur un code sans reflechir désolé, je vais juste faire ce que tu m' a dis
Commentaire de : PCPT le 21/06/2007 09:14:47 FMatrix07 -> c'est exactement le même appel.
et si tu appelles d'une autre feuille, il faut évidemment changer la portée de l'évènement (public) comme c'est aussi le cas pour les contrôles VB
++
Merci
FMatrix07
22 juin 2007 à 12:15
Je reviens pendant quelques temps sur mon projet.
As-tu eu le temps de te mettre sur le problème du LargeChange de ton scroll vertical ?
J'ai vu qu'il n'est pas possible de changer graphiquement la couleur de la VScroll intégrée de ta listbox. Et si tu redimensionnes ta listbox graphiquement, la VScroll intégrée ne se redimensionne pas.
Pour information je n'ai que la version 15 compilée de ton OCX car je ne parviens pas à lancer la version 16 sans erreur. Les erreurs surviennent lors du chargement des objets vkHScrollPrivate et vkVScrollPrivate.
++
22 juin 2007 à 13:27
- " LargeChange de ton scroll vertical" => non, pas encore ! (DS de fin d'année ces 2 dernières semaines, donc pas le temps jusqu'à présent ^^), je commence lundi a supprimer les bugs liés aux scrolls.
- "J'ai vu qu'il n'est pas possible de changer graphiquement la couleur de la VScroll intégrée de ta listbox" ==> Changer l'aspect de la scroll de la listbox graphiquement, c'est effectivement impossible actuellement, car il manque les fichiers *.pag (page de propriété) associés à ces "sous-controles". Mais c'est tout à fait prévu.
- "Et si tu redimensionnes ta listbox graphiquement, la VScroll intégrée ne se redimensionne pas" ==> ah, je vais voir çà, merci.
- "car je ne parviens pas à lancer la version 16 sans erreur" ==> le mieux est de désinstaller l'ancienne version avant d'essayer une nouvelle. Mais pour ce problème précis, le remède est facile ;) Il suffit d'éditer les controles qui buguent avec les scrolsl privates, de supprimer les scrolls, et de les ré-ajouter en les renommant du même nom. Cà devrait suffire ;)
Je ferais une MAJ en début de semaine, j'espère arriver à corriger la totalité des bugs rencontrés avec les scrolls, que ce soit en Private (dans la listbox ou la textbox) ou dans les controles Scroll eux même.
Egalement, j'ai prévu d'ajouter le support de l'Unicode dans mes contrôles (si j'y arrive !).
Puis reste aussi une ListView qu'on m'a démandé de faire (devrait pas être trop trop dur), de la transparence alpha (ouch !) et enfin un mshflexgrid (par contre là je sais pas encore si c'est possible).
@+
25 juin 2007 à 20:37
- la scroll de la vkListBox change de position lors des ajouts d'Items
- plus de bug lors du LargeChange (MSergio, c'est ENFIN bon normalement ! ^^)
- plus de bug de SetFocus lors du vkCommand_Click
- meilleur comportement du vkCommand (lors du MouseUp, et pas possible hord de la zone du controle)
- ...
Je travaille sur les autres problèmes des Scrolls.
@+
25 juin 2007 à 20:42
@+
FMatrix07
25 juin 2007 à 20:57
Private Sub UserControl_GotFocus()
'alors on va tracer un BÔ rectangle de sélection
Dim R As RECT
Dim y As Long
Dim x As Long
'If bEnable = False Then
'on ne garde pas le focus
Call SendKeys("{Tab}")
Exit Sub
End If
Private Sub UserControl_GotFocus()
'alors on va tracer un BÔ rectangle de sélection
Dim R As RECT
Dim y As Long
Dim x As Long
' If bEnable = False Then
'on ne garde pas le focus
Call SendKeys("{Tab}")
Exit Sub
End If
il y a un cote en trop devant les If
Sinon
Tu n'as pas ajouté la position de l'image l'option Center en plus de Right et Left dans les boutons command ? LOL
Tu n'as pas ajouté une image qui change sur tes boutons command quand tu passe la souri. Vu que tu as deja une image possible il te reste juste à ajouter une autre image et tester si la souri passe sur ton bouton pour changer l'image ? LOL
@+
FMatrix07
25 juin 2007 à 21:18
Il y a eu tellement de posts entre temps que j'ai oublié... j'ai pourtant relu les commentaires en partant des derniers, mes MP et les commentaires sur PSC pour trouver les bugs à corriger...
Ce sera fait dans la prochaine MAJ (enfin, pas celle tout de suite vu qu'il faut que je vire le petit bug, mais celle d'après), c'est PROMIS !
Désolé d'avoir oublié.... @+
25 juin 2007 à 21:23
Donc comme je l'ai dit, j'aurais inclus les modifications demandées lors de la prochaine MAJ.
@+
25 juin 2007 à 21:40
Bon, même si je ne suis pas grand fan des contrôles personnalisés dans les applications, ceux la sont bien réussit.
Allez, je balance une idée qu'on ne voit pas souvent :
Dans les listbox, y'a souvent des CheckBox, pourquoi pas pouvoir mettre des OptionsButtons ? Ou les deux à la fois. C'a m'aurais été utile plus d'une fois.
A quand la TreeView (ou TreeListView serait encore mieux) ? (avec aussi des optionboutons dedans ^^)
__
Kenji
25 juin 2007 à 23:15
Enfin tu les fais si tu le souhaite ce n'est qu'une proposition.
Sinon si Nix passe par là au bout de combien de commentaires vous donnez un trophé à une source car celle-ci le merite bien.
@+
FMatrix07
25 juin 2007 à 23:53
Sinon pour un TreeView/TreeListView, pourquoi pas, je pense que je vais déjà faire un vkListView (si j'y arrive), et je verrais si c'est possible à faire un TreeView simplement.
FMatrix07 ==> Pas de soucis, dans la prochaine MAJ tu auras l'option "Center" pour l'image dans les vkCommand, vkToggle et vkFrame. Par contre le positionnement du texte (avec l'image au centre) sera un peu difficile... ?
De même, je rajouterai une property MouseHoverIcon qui contiendra l'image à afficher en icone lors du survol d'un vkCommand par la souris.
Demain normalement ;)
@+ et merci pour les commentaires
26 juin 2007 à 09:12
Je teste de suite...
++
26 juin 2007 à 17:12
En revanche as-tu l'intention d'ajouter la gestion des raccourcis clavier si on ajoute un & dans la propriété caption d'un contrôle ? Cela m'apparaît indispensable. En ce qui me concerne, je ne supporte pas les applis qui ne permettent pas d'utiliser ces raccourcis. Il suffit de tomber en panne de souris pour que cela puisse nous permettre de travailler. Je serais vraiment déçu si tu ne planifiais pas dans le futur de l'implémenter. Ce n'est qu'un avis personnel. Je suis tout de même surpris d'être le seul affecté par ce manque.
Merci pour ton boulot quoi que tu décides,
++
26 juin 2007 à 17:18
"En revanche as-tu l'intention d'ajouter la gestion des raccourcis clavier si on ajoute un & dans la propriété caption d'un contrôle ?" ==> Affirmatif. Je pense d'ailleurs que tu me l'avais déjà demandé, mais comme pour FMatrix07, je ne l'avais pas noté dans TODO.txt. C'est maintenant chose faite (j'ai noté dans le fichier TODO), donc dans une MAJ prochaine le '&' sera géré comme étant un raccourci.
"Je suis tout de même surpris d'être le seul affecté par ce manque." ==> Bah perso, je n'utilise jamais les raccourcis ;)
@+
28 juin 2007 à 19:53
Assez grosse MAJ :
- cochage des Checks dans une vkListBox lors du double clic sur un des Items
- j'ai résolu pas mal de bugs liés au focus et à la touche Tab (merci Mew27 !)
- caché la WindowProc de la vue du projet utilisant ces controles
- ajout de la gestion d'une icone lors du survol d'un vkCommand ou vkToggleButton
- ajouté la gestion des raccourcis des controles ('&' dans le Caption)
- gestion de l'Unicode (pour tous les textes de tous les controles, sauf le .Text de la vkTextBox, j'espère trouver comment faire)
- nouvel exemple + nouveau screen
FMatrix07 ==> Je n'ai pas pu ajouter l'alignement central des Icones parce que je ne sais pas comment gérer la position du texte avec une picture au centre ! (en clair : où veux tu que je mette le texte si la Picture est au centre ? Juste à gauche ou à droite avec la property TextAlignment ?)
Nota : encore quelques bugs avec la gestion de l'Unicode (les FocusRect pas à la bonne dimension, car TextWidth aime pas trop l'unicode ^^)
@+
28 juin 2007 à 22:17
En tout cas rien que la capture a vraiment de la gueule ^^
28 juin 2007 à 22:51
Mais c'est vrai que çà rend bien ^^
Bientôt plus de place dans une seule Form pour tout montrer !
@+
29 juin 2007 à 06:29
D'enfer ta nouvelle MAJ mais tu ne t'arreteras jamais enfin j'espere
La gestion de l'icone en cas de survol est impec.
Pour ce qui est de la position center de l'image il est vrai que ça ne peut etre valable que s'il n'y a pas de texte je regarde de mon coté.
Par contre il faudrait que tu vois pour qu'il y ai un retour à la ligne en automatique du texte quand celui ci est trop long pour etre affiché sur une seule ligne ex: dans les vkcommand
Pas mal ton unicode.
Que la force soit avec toi et bon courage
Je regarderai les MAJ suivante avec grand interet
@+
29 juin 2007 à 11:30
@+
29 juin 2007 à 12:22
- corrigé un bug dans le Timer (quand on changeait les properties Enable et/ou Interval en leur laissant les même valeur, çà provoquait un bug)
- corrigé 2 bugs dans le tri de la vkListBox (en tri inverse de l'alphabétique, le premier Item n'était pas pris en compte + pas de réorganisation des Items si tous sont identiques)
- ajouté le retour automatique à la ligne dans vkCommand et vkToggleButton
Reste à corriger LE plus gros bug (zone blanche à la fin de la vkListBox), j'essaye de le faire aujourd'hui.
@+
29 juin 2007 à 20:23
La vkListBox n'est plus en Beta2, j'ai corrigé TOUS LES BUGS CONNUS !!
(excepté celui du survol des checks qui foire encore un tout peti peu, à la prochaine MAJ ce sera bon ^^).
Voilà !!
@+ ;)
2 juil. 2007 à 11:53
Cà y est c'est bon, j'ai supprimé la totalité des bugs rencensés de la vkListBox !!
@+
(svp si vous trouvez un bug, n'hésitez pas à me le dire !)
2 juil. 2007 à 22:36
Chaque Tab est entèrement paramètrable (icone, gradients...), comme pour les Items de la vkListBox.
Que dois-je envisager comme autres innovations par rapport à un TabStrip normal ?
Moi je n'en sais rien vu que je n'utilise habituellement le TabStrip que de manière très basique ?
@+
2 juil. 2007 à 22:46
tabstrip ou sstab?....
surtout les méthodes pour savoir sur quel onglet on se trouve, activer un onglet (simuler click), une icône, le choix individuel de la typo serait un +, autant de backpicture que de tab, un fond transparent? (tu vas galérer là ^^), et surtout qu'on puisse l'agencer en mode design => click sur 3° active le 3° et masque les contrôles posés sur le 1°
des idées en vrac ;)
bon courage ++
2 juil. 2007 à 23:05
Mais c'est vrai qu'en l'état des choses c'est souvent pas pratique (le tabstrip de vb)
Félicitation (encore une fois ^^) pour l'avancement des controles sinon
3 juil. 2007 à 11:01
je voudrais pouvoir changer l'image d'un bouton dynamiquement, mais manifestement ça ne marche pas. Voilà comment je fais :
MyButton.Picture = LoadPicture(App.Path & "\Ressources\newImage.bmp")
De même en passant par les handle (.Picture.Handle = LoadPicture(...).Handle), ça fait une erreur.
Est-ce normal, ou je m'y prends mal ?
PS : pour des idées de nouveaux contrôles, perso j'aurais besoin de sliders au style XP ...
3 juil. 2007 à 11:14
Pour l'édition en mode design, c'est possible, mais seulement dans une certaine mesure (c'est à dire que contrairement au SSTab où il suffit de cliquer pour changer de Tab, moi il faudra faire Clic Droit -> Modifier -> Changer de Tab).
Et merci pour les idées !
niczob ==> Je vais corriger ce bug. Sinon pour le slider, çà doit pas être trop compliqué, je vais essayer de voir ce que je peux faire...
@+ et merci pour vos commentaires ^^
3 juil. 2007 à 11:24
Exemple :
Set vkCommand1.Picture = LoadPicture(App.Path & "\Ressources\close.ico")
Est-ce gênant et je dois essayer de changer ou c'est bon ?
@+
3 juil. 2007 à 11:43
Ce n'est pas gênant pour moi !
Merci :)
4 juil. 2007 à 06:31
Le SET n'est pas gênant il suffit juste de le savoir
Bonne continuation
Epate nous encore avec ta souce elle nous ravi
@+
5 juil. 2007 à 09:35
Sur une form avec le KeyPreview à True, j'ai placé 2 boutons avec des raccourcis claviers, un VB et un des VK, seul le VB marche.
5 juil. 2007 à 09:43
Tu as bien la dernière version ?
@+
5 juil. 2007 à 15:29
Cool :)
11 juil. 2007 à 15:45
Lorsque je clique sur mon vkCommand, l'image disparait sous le click, et ne réapparait qu'en fin de traitement du click, ou/et lorsque je retire la souris de dessus mon bouton ... Bref j'ai un souci de rafraichissement.
As-tu le même problème ?
11 juil. 2007 à 17:52
Qu'y a t-il comme code dans le vkCommand_Click ?
@+
11 juil. 2007 à 23:59
@+
12 juil. 2007 à 13:47
Quand je clique sur le bouton, l'image disparait, et ne réapparait que si je sors la souris de la zone du bouton.
Je n'avais pas ça avec la précédente version...
13 juil. 2007 à 10:31
je me pose une autre question sur ton contrôle UpDown : quand je change la Value du UpDown dans le code, je ne récupère pas cette valeur dans l'évènement 'Change(Value as Currency)'.
Exemple :
Private Sub IncrNbPhoto()
intNbPhoto = intNbPhoto + 1
'Met à jour le UpDown
vkUpDownPhoto.Value = intNbPhoto
End Sub
Private Sub vkUpDownPhoto_Change(Value As Currency)
intNbPhoto = Value
End Sub
la valeur de Value dans l'évènement correspondant à la valeur précédente, et non la valeur actuelle (celle que je viens de lui attribuer). Ce n'est pas le même comportement que la UpDown VB. Est-ce voulu ? (moi ça m'embête ...)
13 juil. 2007 à 10:49
Pour le UpDown, j'ai en effet iversé deux lignes de code (le RaiseEvent était avant le changement de Value), je corrige çà.
Merci, @+
10 août 2007 à 17:00
10 août 2007 à 17:53
Yes you're right, I've forgot the vertical alignment property.
I'll add it in the next update. But as I can't work on it in august, I'll upload the new version in a month.
I'll fix some other bugs I've found recently, and I'll include Renfield's class to do subclassing.
Thx, see ya
24 sept. 2007 à 12:02
Un petit "truc bizarre", dans le contrôle TextBox, on ne peut pas donner une autre couleur à la propriété : foreColor que le noir...
Ou alors je ne sais pas me servir de ce contrôle ???
A+
Exploreur
24 sept. 2007 à 13:35
A bientôt, salut .
Loloof64
5 oct. 2007 à 15:00
Je suis un Espagnol qui visite cette page trés souvent, et je voudrais savoir si l'auteur va la mettre à jour ??
5 oct. 2007 à 15:46
Cà fait longtemps que je n'ai pas fait de mise à jour (à cause de quelques problèmes diverses + peu de temps avec les études) mais je n'ai pas abandonné cette source pour autant.
Je possède actuellement une version plus évoluée que celle-ci, mais je préfère attendre encore quelque temps avant de mettre à jour (pour la prise en compte des demandes de chacun, la correction des derniers bugs rencontrés et le passage au subclassing de Renfield).
J'aurais dû uploader cette version il y a quelques temps déjà (1 mois), mais je n'ai pas pu le faire.
Donc oui, je mettrai à jour, c'est certain, mais je ne peux pas dire quand exactement... Je vous tiendrai au courant ;)
Merci, @+
23 oct. 2007 à 11:33
j'ai une question à propos de la gestion de l'unicode : à fonte identique, je n'ai pas la même écriture avec de l'arabe quand je confronte un controle optionButton (par exemple) et un Label de MS Forms 2.0 (FM20.dll) (fonte : Tahoma 10 script arabe).
C'est assez embêtant pour mon boulot :(
23 oct. 2007 à 23:15
En fait, la gestion de l'unicode est gérée par les dll Windows : j'utilise des fonctions de l'API (en particulier DrawTextW). Du coup, je ne maitrise pas dans mon code l'affichage résultant (il est géré directement par Windows).
Donc je vois pas trop où pourrait se situer le bug... ?
Pourrais-je voir une image montrant la différence entre Forms 2.0 et mes controles ?
Quel lignes de code as tu mises pour afficher l'Unicode (ChrW ?) ?
@+
25 oct. 2007 à 18:05
voici ce que je voudrais afficher (par exemple, avec une fonte Tahoma) :
ChrW(1577) & ChrW(1610) & ChrW(1606) & ChrW(1583) & ChrW(1605) & ChrW(1604) & ChrW(1575) & ChrW(32) & ChrW(1577) & ChrW(1604) & ChrW(1575) & ChrW(1581) & ChrW(1604) & ChrW(1575)
Regarde ce que donne cette chaine dans un contrôle MS Forms 2.0 TextBox, et une vkTextBox configurée en useUnicode True, font : Tahoma, script : arabe.
Rassure-toi il n'y a pas de bug dans la gestion de l'unicode dans ton contrôle (d'ailleurs je ne parle pas de "bug").
Effectivement, ton contrôle se contente de faire appel à l'API windows, mais c'est manifestement beaucoup plus compliqué que ça d'afficher une langue telle que l'arabe (jette un coup d'oeil ici si ça t'intéresse : http://www.unicodeactivex.com/UnicodeTutorialVb.htm).
Le truc compliqué c'est de rendre l'écriture "cursive", tout attachée quoi. Il est évident que c'est beaucoup trop de boulot que d'implémenter de tels algos dans tes contrôles ... en ce qui me concerne je vais donc m'en passer et remplacer tous les vkLabel par des MS Forms 2.0 Label (j'ai pas le choix :/).
à+ ! :)
14 nov. 2007 à 14:23
Trés beau controles, mais comment peut ont changer ou ajouter mouse pointer sur vkcommand ?
Sinon il est vrai qu'il manque pour finaliser tous ces controles un sstab.
a bientôt
10 janv. 2008 à 17:35
Si on fait un large emploi de l'Unicode, il y a toujours un problème quelque part. Mais ici on a presque tout. Toutefois, comment faudrait-il faire pour passer les menus en Unicode et en chinois ?
Merci d'avance
15 avril 2008 à 17:28
Merci pour ces contrôles
Non seulement ils gère l'unicode (ce qui étais un problème pour moi) mais en plus ils sont beau. Ravie 10/10
7 mai 2008 à 13:50
Je suis débutant (ben oui, faut bien un jour !) et j'ai un petit probleme lors de l'utilisation de ces controles. Il est dit qu'il faut compiler le fichier "vkUserControlsXP.vbp" pour obtenir l'ocx. Seul probleme lorsque je lance la comilation ie s'ouvre et le script est bloqué. j'ai essayé de mettre toutes les sécurités au minimum mais rien n'y fait ! Est-ce que quelqu'un peut m'envoyer l'ocx ou y a t il une solution plus simple ?
Merci
Tharkhun
tombuv@yahoo.fr
7 mai 2008 à 14:00
un projet ActiveX ne peut pas être lancé seul.
pour compiler, pas "run / F5", juste Fichier > créer vkUserControlsXP.ocx
13 juin 2008 à 11:36
Pour certain c'est inutile pour moi c'est un bonheur, d'une part pour le style (mes chefs vont adorer), d'autre part pour la gestion des évenement et la possiblité d'ajouter les evenements souris a n'impeote quel controle (ca c'est trop fort), ca m'a ouvert des possibilité que je ne n'arrivais pas à gérer avant, merci.
Si ya une SSTab dans les tuyau je suis preneur, par contre je n'ai pas trouvé de combobox, j'aurai pourtant pensé que c'etait un controle de premiere necessité!
13 juin 2008 à 16:56
Par contre coloriser un item de façon différente (forecolor ou backcolor) fonctionne bien.
13 juin 2008 à 23:49
Alors déjà désolé si je ne réponds pas à tous les messages (j'ai de moins en moins de temps -___-), mais là il s'agit d'une erreur assez importante et donc voilà la solution : dans vkListBox.ctl, dans la méthode AddItem, il faut remplacer le début du code par çà :
Dim tIt As vkListItem
Dim bOk As Boolean
Dim tF As StdFont
lListCount = lListCount + 1
'redimensionne les tableaux avec le nombre d'items de la liste
ReDim Preserve bChecked(lListCount - 1)
ReDim Preserve bSelected(lListCount - 1)
'ReDim Preserve lHeight(lListCount - 1)
If Item Is Nothing Then
'alors on créé un nouvel Item dont on définit les prop par défaut
Set tIt = New vkListItem
Set tF = New StdFont
tF = UserControl.Font
With tIt
.BackColor = lBackColor
.Checked = False
.Font = tF
De plus, pour bénéficier de la possibilité de changer de fonte PAR item dans la form de test (dans le cas des 100 items avec icone), il faut créer une instance de fonte par Item.
Donc changer dans vkCommand9_Click :
.Font = Me.Font
par
Dim f As StdFont
Set f = New StdFont
f = Me.Font
.Font = f
Et voilà ! Et bien sur s'inspirer des exemples de la form de test pour utiliser mes contrôles.
Sinon, il est maintenant simple de passer un item particulier en gras :
List.Item(1).Font.Bold = True
Merci pour avoir repéré ce bug ^^
Sinon, j'ai modifié pas mal de problèmes entre ma dernière version et celle présente sur vbfrance. Je n'ai pas mis à jour sur vbfrance car c'est assez long de créer un fichier *.zip clean, mais la toute dernière version est disponible sur Sourceforge.net, via SVN (ou en download, mais le package n'est pas à jour non plus ^_^).
http://sourceforge.net/projects/vkusercontrols/ (URL du projet)
URL SVN : https://vkusercontrols.svn.sourceforge.net/svnroot/vkusercontrols
Sinon, j'ai un début de SSTab mais c'est pas terminé (je ne sais pas quand ce sera prêt, faudra probablement être patient ^^).
Pour la combobox, effectivement je ne l'ai pas codée (et ce serait utile), mais il est toujours possible d'en bricoler une en attendant ^^ (vkCommand + vkTextBox + vkListBox visible ou non).
@+
18 juin 2008 à 00:01
Merci pour l'astuce du "pseudo" combobox(et bien sur pour la correction du listbox), j'imagine qu'il faux accoler aussi au vktextbox un vkcommandbutton avec un image de flêche vers le bas pour que la vkillusion soit complete!!
Ca peut être rigolo à faire mais j'acceuillerai quand meme l'arrivée du vkcombobox avec joie (des fois que tu t'ennuie et que tu ne saches pas quoi develloper...).
Sinon quite à passer pour un profiteur, une idée de develloepment pour le SStab me viens :
Ce serai un vkSStab qui gère lui meme les redimenssionnement et repositionnement des controles qu'il contient sur un évenement "resize".ou qui gererai lui même l'apparition d'ascensceur.
J'ai comme un doute pour cette derniere proposition, rassurez moi ca n'existe pas deja???
23 juin 2008 à 12:10
Lorsqu'on le redimensionne dynamiquement (je fais varier la taille des controles sur l'évenement resize de la form)l'ascenceur ne suit pas, il garde sa taille initiale. Par contre il se reajuste quand on passe la souris dessus.
25 juin 2008 à 16:10
Tout d'abord chapeau bas, pour ces controles, même si l'ère est maintenant celle de vista, le look xp a toujours son charme... A quand le SSTab tant attendu ? Je colorise les miens par un hock mais pas terrible en matière de paramétrage...
Merci beaucoup pour ton partage...
Bonne prog à tous.
25 juin 2008 à 16:12
25 juin 2008 à 16:49
@+ JLN
26 juin 2008 à 12:32
voila, bonne continuation...
26 juin 2008 à 19:26
alors je prend note, je corrigerai les bugs la semaine prochaine. Pour la scrollbar de la textbox, je connais le problème (cf description), c'est pas sur que j'arrive à régler tout de suite (bug pas évident).
Pour le SSTab, va falloir que je trouve le temps ^^
Héhé, pour l'ère Vista, je prend également note :-)
@+
27 juin 2008 à 00:08
A se demander comment j'arrive a programmer avec une memoire de poisson rouge.
En tout cas, j'ai testé les rectificatif pour appliquer les fonts differentes par item, et grand merci, ca me retire une fiere chandelle du pied!
Je me demandais comment faire pour presenter des choix multiples hierarchisé et du coup je peux présenter les données principales en gras et souligné, les secondaires seulement en gras etc....
Apres avoir changé la fonte d'un des items faut quand même penser à faire un vklistbox.refresh sinon ca ne se fait pas automatiquement.
Bon courage
27 juin 2008 à 00:54
27 juin 2008 à 08:18
Si c'est une zone mémoire allouée à chaque Item pour y stocker des données, il y a les attributs tagString1, tagString2 et tagLong pour stocker 2 strings et un long par Item dans mes controles.
Sachant que dans le long (voire les strings), on peut stocker un pointeur vers n'importe quoi (cf strptr, objptr...etc), je pense que çà devrait aller pour stocker "les identifiants de tes libellés".
Si c'est autre chose (?), je regarderai ce que c'est :-)
@+
27 juin 2008 à 09:18
Je n'ai plus qu'a aller voir ce qu'est un pointeur (ca fais même pas un an et demi que je programme)
26 sept. 2009 à 10:03
J'ai juste une petite question.
Voilà depuis 9 ans, je programme un logiciel de maintenance vendu par ma société.
J'aimerais donnée un petit coup de jeune à ce logiciel en utilisant votre OCX pour les controles.
Puis-je le faire gratuitement, ou y at'il une demande particulière à faire.
N'étant pas informaticien, je suis incapable de créer de tels contrôles.
Encore bravo et merci par avance de votre réponse.
26 sept. 2009 à 12:02
aucune demande particulière n'est à faire, vous pouvez utiliser l'OCX directement.
Il faut seulement respecter la licence apposée à ce projet (GNU LGPL) (voir le fichier licence.txt dans le *.zip, ou ici http://fr.wikipedia.org/wiki/Licence_publique_générale_limitée_GNU)
Donc en gros, il est possible d'utiliser sans problèmes ce code dans un projet propriétaire sans avoir à rendre tout le code source du projet propriétaire sous licence libre (et heureusement d'ailleurs !)
Pour simplifier, si vous réutilisez ces controles sous LGPL dans votre logiciel, les restrictions seront :
- conserver le copyright du fichier OCX
- conserver la licence LGPL du fichier OCX et la fournir avec le fichier OCX
Rien ne changera pour votre logiciel de maintenance (grâce au "L" de LGPL ^_^)
@+
25 nov. 2009 à 11:04
combo.List(combo.ListCount) = Rstchamp1 & vbTab & Rstchamp2
Les essais en remplacant VbTab par vbkeytab, ou chr(9) sont sans résultat
Est ce possible?
25 nov. 2009 à 12:06
C'est superbe !!!
4 mars 2010 à 09:07
Je n'ai pas encore regardé le code, mais je ne vais pas tarder à le faire.
Cordialement.