OVH Cloud OVH Cloud

controle label

5 réponses
Avatar
mg
Salut,
je souhaite piloter un controle lable via la souris en mode excution(ecrirre
directement dedant, modifier les dimensions..), en ce ki concerne le retses
des proprietés( font, couleur,..), je sais le faire.
seulement le fait d'ecrire dedans et pouvoir les redimensionner via la
souris.

merci.

5 réponses

Avatar
Jean-Marc
"mg" a écrit dans le message de
news:O$Fhtu%
Salut,
je souhaite piloter un controle lable via la souris en mode


excution(ecrirre
directement dedant, modifier les dimensions..), en ce ki concerne le


retses
des proprietés( font, couleur,..), je sais le faire.
seulement le fait d'ecrire dedans et pouvoir les redimensionner via la
souris.



Hello,

Par "écrire dedans", tu veux dire que l'utilisateur peut entrer des données?

Alors ce n'est pas un label, mais un TextBox qu'il te faut. SI tu veux
juste dire modifier le contenu par le code, alors c'est juste modifier
la propriété caption du label: Label1.caption = "coucou"

Pour ce qui est du redimensionnnement, rien n'est prévu pour faire ce
genre de chose. On peut bidouiller pour "donner l'impression que", mais
ça demande pas mal de prog et d'astuce pour faire qq chose de crédible et
de visuellement satisfaisant.

Peux tu expliquer le contexte, pour qu'on puisse (sans doute) t'orienter
vers la meilleure solution?

--
Jean-marc
Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ;
Avatar
mg
je probleme, c que je veux mettre des commentaire sur des photos en
interactif.
je c le faire avec des texte box mai le probleme c que jarrive pas a faire
de la transparence et le controle reste visible sur la photo.

la seule facon c d'utiliser des label mais si ta le solution, je suis
preneur.

merci davance.

"Jean-Marc" a écrit dans le message de news:
435bb8dc$0$12606$
"mg" a écrit dans le message de
news:O$Fhtu%
> Salut,
> je souhaite piloter un controle lable via la souris en mode
excution(ecrirre
> directement dedant, modifier les dimensions..), en ce ki concerne le
retses
> des proprietés( font, couleur,..), je sais le faire.
> seulement le fait d'ecrire dedans et pouvoir les redimensionner via la
> souris.

Hello,

Par "écrire dedans", tu veux dire que l'utilisateur peut entrer des


données?

Alors ce n'est pas un label, mais un TextBox qu'il te faut. SI tu veux
juste dire modifier le contenu par le code, alors c'est juste modifier
la propriété caption du label: Label1.caption = "coucou"

Pour ce qui est du redimensionnnement, rien n'est prévu pour faire ce
genre de chose. On peut bidouiller pour "donner l'impression que", mais
ça demande pas mal de prog et d'astuce pour faire qq chose de crédible et
de visuellement satisfaisant.

Peux tu expliquer le contexte, pour qu'on puisse (sans doute) t'orienter
vers la meilleure solution?

--
Jean-marc
Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ;



Avatar
Picalausa François
Hello,

Il est possible de jouer avec des textbox invisibles, ou d'intercepter les
touches à la volée sur le contrôle parent.
Le dimensionnement n'est pas un problème en sois si tu emploie la propriété
Autosize du label.
Voici un exemple:

'Un picturebox Picture1, conteneur
' Un label, Label1
' Autosize = True
' Un textbox, txtEdit
' Visible = False

Option Explicit

Private Sub Label1_MouseDown(Button As Integer, Shift As Integer, X As
Single, Y As Single)
'Redirige les événements
Picture1_MouseDown Button, Shift, X, Y
End Sub

Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As
Single, Y As Single)
If Button = 1 Then
'Est-on en édition?
If txtEdit.Visible Then
'Sort de l'édition
EndEdit Label1
Else
'même code que pour le déplacement
Picture1_MouseMove Button, Shift, X, Y
End If
ElseIf Button = 2 Then
'affiche une textbox afin d'éditer le texte
StartEdit Label1
End If
End Sub

Private Sub StartEdit(Label As Label)
txtEdit.Move Label.Left, Label.Top
txtEdit.Visible = True
txtEdit.SetFocus
End Sub

Private Sub EndEdit(Label As Label)
If Not Label Is Nothing Then
Label.Caption = txtEdit.Text
End If
txtEdit.Visible = False
End Sub

Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As
Single, Y As Single)
If Button = 1 Then
'Positionne le label "au milieu du curseur"
Label1.Move X - Label1.Width / 2, Y - Label1.Height / 2
End If
End Sub

Private Sub txtEdit_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case vbKeyReturn
EndEdit Label1
KeyAscii = 0
Case vbKeyEscape
EndEdit Nothing
KeyAscii = 0
End Select
End Sub


--
Picalausa François

"mg" a écrit dans le message de news:
%23FNt0B$
je probleme, c que je veux mettre des commentaire sur des photos en
interactif.
je c le faire avec des texte box mai le probleme c que jarrive pas a faire
de la transparence et le controle reste visible sur la photo.


Avatar
Jacques93
Bonjour mg,
mg a écrit :
je probleme, c que je veux mettre des commentaire sur des photos en
interactif.
je c le faire avec des texte box mai le probleme c que jarrive pas a faire
de la transparence et le controle reste visible sur la photo.

la seule facon c d'utiliser des label mais si ta le solution, je suis
preneur.

merci davance.




Tu peux peut être t'inspirer de ça :

Private Sub Form_Load()
Me.Text1.Visible = False
End Sub

Private Sub Label1_Click()
With Me.Text1
.Left = Me.Label1.Left
.Top = Me.Label1.Top
.Width = Me.Label1.Width
.Height = Me.Label1.Height
.Visible = True
.SetFocus
End With
End Sub

Private Sub Text1_LostFocus()
With Me.Text1
Me.Label1.Caption = Me.Text1.Text
.Visible = False
End With
End Sub

--
Cordialement,

Jacques.
Avatar
Jean-Marc
Hello,

joli code, j'aime bien le Picture1_mousedown/startEdit/endEdit

J'aurais fait aussi qq chose dans ce gout la, surement le plus
efficace et simple ici.

Pour le redimensionnement, le fait qu'on dispose d'un picturebox
permet facilement d'intercepter les évènements souris et de faire
un redimensionnement à la main.

Comme tu le signales, Autosize est dans ce cas la meilleur solution.

--
Jean-marc
Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ;



"Picalausa François" a écrit dans le message de
news:%23ynFFP$
Hello,

Il est possible de jouer avec des textbox invisibles, ou d'intercepter les
touches à la volée sur le contrôle parent.
Le dimensionnement n'est pas un problème en sois si tu emploie la


propriété
Autosize du label.
Voici un exemple:

'Un picturebox Picture1, conteneur
' Un label, Label1
' Autosize = True
' Un textbox, txtEdit
' Visible = False

Option Explicit

Private Sub Label1_MouseDown(Button As Integer, Shift As Integer, X As
Single, Y As Single)
'Redirige les événements
Picture1_MouseDown Button, Shift, X, Y
End Sub

Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As
Single, Y As Single)
If Button = 1 Then
'Est-on en édition?
If txtEdit.Visible Then
'Sort de l'édition
EndEdit Label1
Else
'même code que pour le déplacement
Picture1_MouseMove Button, Shift, X, Y
End If
ElseIf Button = 2 Then
'affiche une textbox afin d'éditer le texte
StartEdit Label1
End If
End Sub

Private Sub StartEdit(Label As Label)
txtEdit.Move Label.Left, Label.Top
txtEdit.Visible = True
txtEdit.SetFocus
End Sub

Private Sub EndEdit(Label As Label)
If Not Label Is Nothing Then
Label.Caption = txtEdit.Text
End If
txtEdit.Visible = False
End Sub

Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As
Single, Y As Single)
If Button = 1 Then
'Positionne le label "au milieu du curseur"
Label1.Move X - Label1.Width / 2, Y - Label1.Height / 2
End If
End Sub

Private Sub txtEdit_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case vbKeyReturn
EndEdit Label1
KeyAscii = 0
Case vbKeyEscape
EndEdit Nothing
KeyAscii = 0
End Select
End Sub


--
Picalausa François

"mg" a écrit dans le message de news:
%23FNt0B$
> je probleme, c que je veux mettre des commentaire sur des photos en
> interactif.
> je c le faire avec des texte box mai le probleme c que jarrive pas a


faire
> de la transparence et le controle reste visible sur la photo.