mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 2011
-
5 nov. 2006 à 09:07
Utilisateur anonyme -
5 nov. 2006 à 14:27
Salut,
malgrè mes recherches (ici, google, autres sites et AllApi) je ne trouve pas de propriété permettant, pendantl'exécution d'une Form, le déplacement d'une ligne ou d'un label PAR l'utilisateur.
Est ce faisable ? Y-a-t'il une fonction d'Api le permettant ?
Faut-il tricher avec la position + clic de la souris ?
Merci pour vos messages !
@++
<hr width="100%" size="2" />
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
Dim PtX AsSingle, PtY AsSingle
PrivateSub TaLabel_MouseDown(Button AsInteger, Shift AsInteger, X AsSingle, Y AsSingle) If Button 1 Then PtX X: PtY = Y
EndSub
PrivateSub TaLabel_MouseMove(Button AsInteger, Shift AsInteger, X AsSingle, Y AsSingle)
If Button = 1 ThenWith TaLabel: .Move .Left + X - PtX, .Top + Y - PtY: EndWith
EndSub,
----
(Coloration syntaxique automatique par Kenji)
Pour une line, ca peut rester faisable mais un peu plus dur.
Il faut d'abord savoir si l'utilisateur à cliqué sur la ligne, récupéré la posision du clique et après c'est comme le code précédent.
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 5 nov. 2006 à 10:05
Je ne pense pas que ce soit réalisable directement (ca serait trop facile ;p ) Et surtout, je ne vois pas trop l'intérêt d'avoir développer des API pour faire cela puisque les API facilite la programmation avant tout, et non l'utilisation des contrôles par l'utilisateur !
Il faut passer par un bon vieux code : tu clique sur le contrôle pour le sélectionner, puis tu le déplace, et enfin tu clique n'importe où pour le déselectionner, tout ca pas code bien entendu.
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 5 nov. 2006 à 10:11
Oui, merci DarkSidious pour cette précision.
Je suis en train de voir ça avec un Label, et je souhaite que le déplacement du Label soit visible en temps réel !
"je ne vois pas trop l'intérêt d'avoir développer des API pour faire cela puisque les API facilite la programmation avant tout, et non l'utilisation des contrôles par l'utilisateur "
>> Beh ça m'aurait facilité la programmation
Si je trouve une solution correcte, je posterai la réponse. Merci de tes indications.
@++
<hr width="100%" size="2" />
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 5 nov. 2006 à 11:10
Il est possible de faire un drag and drop sur un label.
Il en va différemment avec un contrôle Line, à moins, bien sur, de le mettre dans un container (Frame, par exemple) et de faire le drag and drop du container...
Reste la possibilité de stocker en mémoire la position(X1,Y1 - X2,Y2) du contrôle line et de s'en servir pour faire des comparaisons avec les X et Y d'une mouseDown sur la form et décider alors (si concordances à définir) d'instructions de modification des coordonnées X1,Y1,X2 et Y2 du contrôle line. Tout ceci me parait cher payer...
Vous n’avez pas trouvé la réponse que vous recherchez ?
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 5 nov. 2006 à 11:45
Salut Kenji,
merci pour ta réponse, ça fait 2 heures que je suis dessus avec les Apis GetKeyState et GetCursorPos et j'éprouvais une dernière difficulté : le rapport twip et pixel, car mon code ne fonctionne bien que lorsque la Form est en plein écran.
Conclusion, je vais prendre ta solution qui est parfaite. Encore Merci (et merci aussi à jmfmarques).
Je donne le but : je mets 2 webbrowser sur une Form, le premier sur toute la largeur de la Form et sur les 3/4 de la hauteur, le quart restant est pour le webbrowser2.
Ce Label sépare les deux, et je souhaitais que l'utilisateur est la possibilité de modifier la taille des 2 webbrowser en modifiant le placement de ce Label, déterminant la valeur Width du premier webbrowser et la valeur Top du second.
@++
<hr width="100%" size="2" />
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 5 nov. 2006 à 11:57
Arff Mortalino, tu aurais dû faire ça en .NET
Tu as le controle Splitter qui te fais ça tout seul. Rien à faire, tu pose le splitter sur la feuille, tes controles de chaque coté du splitter.
A l'éxecution, tu bouge le splitter, les controles sont automatiquement redimensionnés, même pas de code à écrire.
---- Sevyc64 (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 5 nov. 2006 à 12:19
Kenji,
juste une précision, pourquoi ton code fonctionne parfaitement en vba (le Label bouge en direct) alors qu'en vb6, il faut attendre de relacher le bouton pour voir le placement s'opérer ??
@++
<hr width="100%" size="2" />
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>