NEUROBUTTON : BOUTON TRÈS CUSTOMIZABLE

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 - 28 oct. 2005 à 20:20
auroredu67120 Messages postés 1 Date d'inscription dimanche 13 novembre 2005 Statut Membre Dernière intervention 13 novembre 2005 - 13 nov. 2005 à 13:07
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/34379-neurobutton-bouton-tres-customizable

auroredu67120 Messages postés 1 Date d'inscription dimanche 13 novembre 2005 Statut Membre Dernière intervention 13 novembre 2005
13 nov. 2005 à 13:07
continu comme ca et améliore tous ca pour que les gens comme moi puissent y arriver.
cs_louloute67 Messages postés 1 Date d'inscription vendredi 4 novembre 2005 Statut Membre Dernière intervention 13 novembre 2005
13 nov. 2005 à 12:57
bravo alex bonne chance pour la suite
kokise Messages postés 120 Date d'inscription jeudi 5 mai 2005 Statut Membre Dernière intervention 21 décembre 2017
10 nov. 2005 à 17:56
Vraiment bravo tes boutons sont magnifiques trés pro et merci aussi au autre d'avoir participé a l'amélioration.
ça serai bientot mon tour :D inchalah
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
4 nov. 2005 à 09:39
Contrôle sympathique, un "début" très encourageant.
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
3 nov. 2005 à 12:16
ah, et aussi : peut-être supprimer le bouton LOAD pour charger directement sur l'évènement click du Combo (PropertyPage)
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
3 nov. 2005 à 11:52
salut,
ok, pas mal de modifs. c'est vraiment bien.
pas indenté correctement partout mais çà ne gène plus la lecture.
le "petit" arrondi, çà fait propre!
ouaip, beau boulot!
un bug repéré (2 fois) mais je ne sais pas pourquoi : en jouant dans la page de propriété, puis en terminant par "annuler", la Font (juste Gras pour être précis) a tout de même été modifiée...

une remarque comme çà : je me demande si les effets Focus ne rendraient pas mieux plutôt en MouseOver ....
en tout cas, tel quel, ton contrôle me plaît bien! félicitations.
et merci aussi d'avoir renommé les _left ... c'est beaucoup plus clair!

bonne contituation
PCPT [AFCK]
neurosupherot Messages postés 81 Date d'inscription jeudi 7 août 2003 Statut Membre Dernière intervention 7 novembre 2007
3 nov. 2005 à 11:07
Euh...
:) merci lol je pensais pas que ça pourrait plaire autant lol:)
c'est encourageant:) merci
cs_NeXusDll Messages postés 1 Date d'inscription jeudi 3 novembre 2005 Statut Membre Dernière intervention 3 novembre 2005
3 nov. 2005 à 10:29
Franchement trop classe, j aimerais trop avoir eu le génie de l 'avoir créé, trop utile et tout !!!!!!!!!!!!

GOOD GOOD :!!!!!!!!!!!!!!!!
JLUTILISE TOUT LE TEMPS !!!!!!!!!!!!!!!
++

et bonne continuation tu commences fort
neurosupherot Messages postés 81 Date d'inscription jeudi 7 août 2003 Statut Membre Dernière intervention 7 novembre 2007
3 nov. 2005 à 08:50
Voila voila, j'ai effectué les modifs que tu m'as conseillé PCPT ;)
Dis en ce que tu penses
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
2 nov. 2005 à 14:03
c'est le fait de décaler les lignes avec une certaine logique pour une lisibilité plus fluide.

exemple, ne jamais commencer ta ligne en bord. on voit comme çà très rapidement où commence et où se termine une procédure, sans pour autant avoir besoin de chercher "end sub"...

les if, si tu fais :

if i=1 then
call action1
elseif i=2 then
call action2: msgbox "truc"
else exit sub
endif

c'est moins évident que

if i=1 then
call action1
elseif i=2 then
call action2
msgbox "truc"
else
exit sub
endif

le [Tab] est donc plus que conseillé.

une boucle, pareil, quand on commence à imbriquer 3 4 For ... Next, sans indentation, c'est illisible et facile d'oublier certaines lignes de code....

voilà @+ ;)
PCPT [AFCK]
neurosupherot Messages postés 81 Date d'inscription jeudi 7 août 2003 Statut Membre Dernière intervention 7 novembre 2007
2 nov. 2005 à 13:53
d'accord je vais m'y mettre mais...indentation??? qu'est ce que c'est lol?
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
2 nov. 2005 à 13:00
re,
bon, j'ai regardé d'un peu plus près le code....
pour la Form (d'un coté pratique) voici une modif.



Private Declare Function SendMessage Lib "User32" Alias "SendMessageA" _
(ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Sub ReleaseCapture Lib "User32" ()
Const WM_NCLBUTTONDOWN &HA1: Const HTCAPTION 2
'
Private Sub Form_Load()
Frame1.Backcolor 0: Frame1.Forecolor 16777215
End Sub
'
Private Sub Neurobutton1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then Call ReleaseCapture: Call SendMessage(Me.hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&)
End Sub
'
Private Sub Neurobutton2_Click()
Unload Me
End Sub
'
'
Private Sub CmdVbfrance_MouseOver(Index As Integer)
CmdVbFrance(Index).GradientDirection = Horizontal
End Sub
Private Sub CmdVbfrance_MouseLeave(Index As Integer)
CmdVbFrance(Index).GradientDirection = Vertical
End Sub



çà change pas grand chose, mais "End", pas bien! pis' là on peut déplacer la Form. et la couleur de la Frame, gris.... :-$

bref.
*même remarque que pour l'hyperlink. si tu veux pouvoir modifier la direction, ou quoi que ce soit du contrôle, il faut que çà soit une option et non pas une modif des propriétés en cours d'exécution.
*pour le contrôle, les 2 effets sont vraiment sympa.
*pour le fichier ressource, ok, mais le dossier çà ne va pas. au pire, met les sauvegardes dans le App.Path directement.
le dossier doit exister sinon plantage (pas pratique un dossier, même vide).
si dossier vide, souvent supprimé des zip, donc obligé de mettre un fichier dedans comme tu l'as fait. problème -> fichier lu comme un fichier sauvegarde (donc plantage puisque format contenu incorrect)

*l'indentation est à revoir
*commentaires, il n'y en a pas dans la PropertyPage. ce manque est largement compensé celà dit par le contrôle lui-même (c'est un peu le plus important) qui est extrêmement bien expliqué.
*petit but dans la PropertyPage avec le combo (pas vu pourquoi, arrivé une seule fois)
*je trouvais les propriétés un peu fouillies. bah j'ai pas changé d'avis -_-
en fait, toutes les couleurs et certaines des options n'ont pas besoin d'apparaître dans le volet de propriétés. la PropertyPage est justement là pour çà.
pour supprimer une propriété de l'affichage, entre dans la page de code du contrôle,
outils > attributs de procédure > [avancés>>].
là tu choisies ta propriété (ex : Border2_Down) et tu coches "ne pas afficher dans le fenêtre des propriétés"
..... çà ne reste que mon avis perso :-$

*certains termes sont gênants, comme Border2_ par exemple. top_/left_/bottom_/right_ çà serait mieux.

bon, j'ai fini le roman.
malgré tout, très bon contrôle et très bon boulot.
9/10 (espérant tout de même les modifs indiquées^^)

bonne continuation @+
PCPT [AFCK]
neurosupherot Messages postés 81 Date d'inscription jeudi 7 août 2003 Statut Membre Dernière intervention 7 novembre 2007
2 nov. 2005 à 12:11
merci pcpt c'est fait:)
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
2 nov. 2005 à 11:52
salut
erreur zip, il manque le fichier .res
neurosupherot Messages postés 81 Date d'inscription jeudi 7 août 2003 Statut Membre Dernière intervention 7 novembre 2007
2 nov. 2005 à 11:25
Après une petite semaine, voila donc cette mise à jour et j'espère qu'il est assez complet cette fois ci.
je serai donc ravi d'être noté et commenté:)

Merci
cs_JLN Messages postés 371 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 17 juin 2013
31 oct. 2005 à 09:06
A quand la mise à jour ? Je suis impatient tellement ca a l'air super !
Bonne continuation et merci de partager.

JLN
Utilisateur anonyme
30 oct. 2005 à 01:01
Bonjour. Pas Mal du tout. Cependant j'ai noté dans l'evenement "Propertypage_SelectionChanged" de la page de propriété que la commande DOS ne générai pas toujours le fichier des modèles du moins sur mon poste. Je l'ai remplacé par quelques ces quelques lignes qui me paraisse plus efficaces et plus sur:

ListModels:

''' Shell "cmd /c dir /b """ & App.Path & "\Models"">" & App.Path & "\models.txt", vbHide 'Chargement de la liste des modèles
''' start = Timer
''' Do While Timer - start < 0.5
''' DoEvents
''' Loop
''' If Timer - start < 1 Then On Error GoTo ListModels 'parfois si pas assez rapide, erreur file not found
''' Open App.Path & "\models.txt" For Input As #1
''' Do While Not EOF(1)
''' Line Input #1, textline
''' CmbModels.AddItem Left(textline, Len(textline) - 4)
''' Loop
''' Close #1
''' Kill App.Path & "\models.txt"

'--------------------------------------------------------------
'modif JJDai du 30/10/2005
'--------------------------------------------------------------
Dim sModele As String
sModele = Dir(App.Path & "\Models")
Do While sModele <> ""
CmbModels.AddItem Left$(sModele, Len(textline) - 4)
sModele = Dir
Loop
draluorg Messages postés 625 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 25 novembre 2010
29 oct. 2005 à 17:20
Salut a tous,

Wai z'ont l'air vraiment sympa tes boutons :)

Je testerai des que tu aura resolu tes 2-3 ptits problemes

Bonne continuation

++
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
29 oct. 2005 à 14:22
Justement, pour ton problème d'AutoRedraw, la manière la plus simple (et la plus rapide) est de passer par un DC temporaire (picturebox, ou un DC Compatible crée par API) dans lequel tu trace l'image de ton bouton, et que tu "colle" par un BitBlt lors du tracé de ton bouton, cela évite :
1/ Le bug de l'autoredraw qui bouffe la mémoire à parte de vue, surtout pour des contrôles qui se redéssine très souvent !
2/ Le clignotement dû au réaffichage d'une partie d'une image lorsque l'autoredraw est désactivé
3/ Le clignotement dû au déplacement du contrôle.

DarK Sidious
neurosupherot Messages postés 81 Date d'inscription jeudi 7 août 2003 Statut Membre Dernière intervention 7 novembre 2007
29 oct. 2005 à 13:25
:D merci, je suis très content que ça plaise:)
pour ce fameux bug:
DarkSidious: qu'entends tu parler par un DC temporaire???merci
PCPT:Ok pour l'hyperlink, content que tu trouves ça bien, je vais faire un effort de compréhension pour la propertypage, Comment jouer avec doevents, cls et refresh quand autoredraw sera = false?(Usercontrol effacé, lors d'un passage d'une fenetre par dessus :()

MERCI de votre aide:D
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
28 oct. 2005 à 21:05
vérifié : ton erreur "fatale.." est provoquée par les instructions contenues dans le timer!
çà réduit ta zone de recherche ;)
si tu peux te passer de ce timer, tu auras peut-être la possibilité de laisser l'autoredraw = true

suggestion : option HyperLink pour souligner au MouseOver (au lieu de par le code....).
focus optionnel : ok, bien.

par contre, toutes ces options de couleurs, c'est bien mais c'est pas intuitif (je comprend mieux "pourquoi" les fichiers txt)

++
PCPT [AFCK]
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
28 oct. 2005 à 20:50
salut,
vraiment sympa ce contrôle !
ton bug vient de l'AutoRedraw.
met le à false et joue avec DoEvents, Resfresh et Cls.

le Focus sur Laser et Fashion, très bien. j'ai pas regardé s'ils étaient optionnels (et il le faudrait), mais en tout cas çà rend pas mal.

enfin, pour les config en txt, çà par contre, il faudrait soit qu'elles soient dans un fichier ressource, soit en dur dans le UserControl (pour des raisons de réutilisation...)

pas noté puisque modifs indispensables, mais c'est pas mal déjà ;)
bonne continuation
PCPT [AFCK]
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
28 oct. 2005 à 20:20
Pour ton problème de Out of memory voici quelques piste (je n'ai pas regardé ton code dans le détails, donc je peux pas te dire ce qui cloche réellement, mais ce sont des problèmes que j'ai rencontrés pour des contrôles graphiques) :
Autoredraw activé (qui bouffe beaucoup de mémoire, préférer un DC temporaire plus rapide et moins gourmand pour ceux qui savent bien les utiliser !)
Oublier de supprimer l'ancienne brosse/pinceau sélectionné dans un DC

DarK Sidious
Rejoignez-nous