Accueil > Forum > > > > demande d'aide sur le controle shape
demande d'aide sur le controle shape
samedi 13 août 2005 à 13:58:58 |
demande d'aide sur le controle shape

jalil_msti
|
est ce que qlq un peut me dire comment redimmensionner un contrôle shape au cours de l'exéxution du programme en utilisant la souris.  merci d'avance. 
|
|
samedi 13 août 2005 à 14:09:11 |
Re : demande d'aide sur le controle shape

DARKSIDIOUS
|
Merci de ne pas ouvrir un nouveau post à chaque réponses qui te conviennent pas... Comme l'a dit Gobillot, il faut utiliser les propriétés Width et Height. Maintenant, si tu veux le redimensionner à la souris, et bien il te faut récupèrer les coordonnées de la souris dans le MouseDown, et redimensionner ton contrôle dans le MouseMove à partir des coordonnées récupèrée dans le MouseDown. Dis comme cà, ca à l'air simple, mais le problème que tu va rencontrer, c'est pour le MouseMove si des contrôles sont sur ta feuille, donc voici ce que je te conseille : utiliser la fonction de l'API Windows SetCapture lors d'un click sur ton shape qui permettra de rediriger les message de la souris vers la feuille contenant le shape, et tu n'aura plus qu'à utiliser les événements MouseDown et MouseMove pour le redimensionner. Par contre, n'oublie pas de libérer les messages de la souris pas un appel à la fonction de l'API Windows ReleaseCapture dans le MouseUp de ta feuille après ! DarK Sidious
Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
|
|
samedi 13 août 2005 à 14:47:47 |
Re : demande d'aide sur le controle shape

jpleroisse
|
Bonjour, Peut-être les APIS dont parle Dark Sidious, pourront t'aider, sinon, il n'est pas possible de redimentionner un contrôle Shape pendant l'exécution d'un programme. Tous simplement parce que ce contrôle ne gère aucun évènement. (Place un contrôle Shape sur ta Form, DlClick dessus et tu verras qu'il n'apparaît pas dans le module de la Form). jpleroisse
|
|
samedi 13 août 2005 à 16:04:14 |
Re : demande d'aide sur le controle shape

CanisLupus
|
Salut, Un tit exemple en vb6 bricolé en 10 minutes, sans api, mais un peu tiré par les cheveux. Il ne te permet que de redimensionner en largeur à partir du côté droit. Je te laisses faire pour le reste. Utilisation : tu cliques sur le côté droit de la shape (en maintenant le bouton enfoncé et tu tires vers la droite ou la gauche. Quand tu relâches, ta shape a une nouvelle largeur.
Dans une form avec une shape :
Dim test1 As Boolean Dim test2 As Boolean Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) test2 = test1 End Sub Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) 'le +25 c'est pour compenser l'imprécision du click souris If X >= Shape1.Left + Shape1.Width - 25 And X <= Shape1.Left + Shape1.Width + 25 Then test1 = True Else test1 = False End If End Sub Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) If test2 = True Then Shape1.Width = X - Shape1.Left test2 = False End If End Sub
Bon courage
------------------------------------------------- Dresseur de puces, .... normal pour un loup !?
|
|
samedi 13 août 2005 à 19:47:34 |
Re : demande d'aide sur le controle shape

DARKSIDIOUS
|
canislupus : ton code ne fonctionne pas (à tester tout de même), si un bouton par exemple se trouve sous la souris lors de l'étirement du shape, d'où l'utilisation des API ! DarK Sidious
Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
|
|
samedi 13 août 2005 à 20:13:08 |
Re : demande d'aide sur le controle shape

Gobillot
|
je confirme, c'est le controle qui se trouve sous la souris qui va reprendre la main à moins de mettre un ReleaseCapture à chaque controle ce qui risque d'être lourd s'il y a beaucoup de controles une autre solution c'est d'aller chercher la position de la souris dans un Timer avec GetCursorPos et de regarder si le curseur est bien dans la Shape.
Daniel
|
|
samedi 13 août 2005 à 20:41:22 |
Re : demande d'aide sur le controle shape

Gobillot
|
exemple pour une PictureBox: redimentionnement sur 2 côtés et déplacement c'est loin d'être parfait, faut être patient et aller très doucement. pour la Shape faudra adapter Option Explicit Dim XX As Long Dim YY As Long Dim Pointer As Long Dim X1 As Long Dim Y1 As Long Dim Curs5 As Boolean Dim d As Long Dim dx As Long Dim dy As Long Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Pointer = 0 Picture1.BorderStyle = 0 End Sub Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) 'nouveau If Curs5 = True Then Curs5 = False Else Curs5 = True X1 = X Y1 = Y End If End Sub Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button <> 1 Then Pointer = 0: 'nouveau Picture1.BorderStyle = 1 If X > Picture1.Width - 150 Then XX = X - 15: Pointer = 9 End If If Y > Picture1.Height - 150 Then YY = Y - 15: If Pointer = 0 Then Pointer = 7 Else Pointer = 8 End If Else If Pointer = 9 Or Pointer = 8 Then dx = X - XX: Text1 = dx d = Picture1.Width + X - XX If d > 300 And d < Me.ScaleWidth Then Picture1.Width = d: XX = X End If End If If Pointer = 7 Or Pointer = 8 Then dy = Y - YY: Text2 = dy d = Picture1.Height + Y - YY If d > 300 And d < Me.ScaleHeight Then Picture1.Height = d: YY = Y End If End If 'Déplacement If Curs5 And Pointer = 0 Then Picture1.Top = Picture1.Top + Y - Y1 Picture1.Left = Picture1.Left + X - X1 End If End If Picture1.MousePointer = Pointer End Sub Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Pointer = 0 Picture1.MousePointer = 0 Curs5 = False End Sub
Daniel
|
|
samedi 13 août 2005 à 21:00:50 |
Re : demande d'aide sur le controle shape

DARKSIDIOUS
|
Non, si on fait un SetCapture dans le MouseDown, et un ReleaseCapture dans le MouseUp, il n'y a plus de problème de contrôle survollé. Il suffit donc de rajouter dans le code de daniel : Dans le MouseDown : Call SetCapture(Me.Hwnd) Dans le MouseUp : Call ReleaseCapture DarK Sidious
Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
|
|
samedi 13 août 2005 à 21:20:17 |
Re : demande d'aide sur le controle shape

CanisLupus
|
OK avec vos critiques Dark Sidious et Daniel mais je répète, mon exemple est un truc bricolé. Juste pour dire que c'est possible mais évidemment, ça ne marche à coup sùr que si la form ne contient QUE SEULEMENT UNE SHAPE (encore qu'il faudrait tester aussi les width et height de la form). Dans le cas ou d'autres controles existent sur la form, il faudra les gérer aussi et ça, c'est pas impossible mais c'est pas gagné. Franchement, c'est seulement une piste et, personnellement, je ne me ressens pas de développer un truc comme ça, à moins que j'y soit obligé. C'est pour ça que j'ai terminé mon précédent post par : Bon courage (et je maintiens).  PS : jalil_msti qu'en dis tu ? ------------------------------------------------- Dresseur de puces, .... normal pour un loup  !?
|
|
Cette discussion est classée dans : aide, controle, demande, shape
Répondre à ce message
Sujets en rapport avec ce message
demande d'aide sur le controle shape [ par jalil_msti ]
est ce que qlq un peut me dire comment redimmensionner un contrôle shape au cours de l'exéxution du programme. merci d'avance.
demande d'aide [ par cinglee ]
salut à tout je suis entran de developer une petirte application vb qui est applée à recuprer des informations a partir de lexterieu de la macine.je d
Demande aide pour installation MP-FOL8 [ par myrtille78 ]
Je viens de gagner un lecteur MP3 mpman MP-FOL8, dans le mini mini guide il est écrit qu'il faut juste brancher le MP3 puis (sous windows XP) l'instal
demande aide winsock/chat/correction de bugs programmation winsock [ par retaks666 ]
voila, alors j'ai fait un programme qui recrée un chat, mais il y a des problèmes avec le winsock et je ne trouve pas, je mets la source en ligne tem
tres debutant demande aide [ par cphamvan ]
debutant parle à expert:je voudrais avoir l'heure atomique sur mon PC.j'ai chargé les 5 PROG sur le site MIcrosoft comme indiqué sur http://www.vbfran
Demande d'aide CommonDialog et objet Printer de VB [ par pmesson ]
Quelqu'un pourrait-il m'aider ?Dans une application VB6, j'utilise CommonDialog.ShowPrinter de manière à ce que l'utilisateur puisse choisir l'imprim
Demande d'aide sur Visual Basic [ par Mal Ganis ]
Comment faire en Visual Basic pour envoyer une note du programme à un synthétiseur et comment faire pour récevoir sur le programme la note émise sur u
Besoin d'aide pour le controle listview [ par Marnilla ]
Salut,J'utlise dans un de mes programmes le contrôle listview et j'ai eu des soucis pour récupérer les données sélectionnées sur ce contrôle. Finaleme
demande d'aide [ par cyberspace ]
j'ai un cybercafe et je voudrais creer des procedures sous vba excel2000,pour me permettre d'eteindre ou bloquer les autres postes (win98se) a partir
demande d'aide [ par la_vida ]
la_vidabonjour,j'ai utilisé le code pour ouvrir la boite de dialogue "ouvrir "et "enregistrer sous" le problème se trouve dans ces deux lignes:var=com
Livres en rapport
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|