|
Postada em 06/07/2006 12:52 hs
Boa tarde galera.. tem como eu inserir um objeto num formulario e movimenta-lo? tipo, estou desenvolvendo um sistema de movimentação de jogadores e queria inseri-los no campo e montar uma tatica. mas não sei como inserir esse objeto. tentei usar o shape como o objeto, mas nao sei como faz para movimentar em modo de execussão.. Valeu galera..
|
|
|
|
|
Postada em 06/07/2006 14:00 hs
se vc quizer movimentar clicando e arrastando, ae vai:
Dim move As Boolean Dim Xini As Long Dim Yini As Long
Private Sub Form_Load() move = False End
Private Sub Shape1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) move = True Xini = X - Shape1.Left Yini = Y - Shape1.Top End ' a variável move sera utilizada p/ definirmos se o shape vai se mover ou n quando movimentarmos o mouse. ' no exemplo eu estou usando shape, mas vc pode usar em qqr objeto.
Private Sub Shape1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Shape1.Left = X - Xini Shape1.Top = Y - Yini End ' movimenta o shape enquanto vc arrasta o mouse
Private Sub Shape1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) move = False End ' para a movimentação do shape
Espero ter ajudado.
|
|
|
|
Postada em 06/07/2006 14:22 hs
Amigão.. Não deu certo, a figura não tem como mover no modo shape... tentei o picture ai move, mas fica loucona, não vai para o local desejado e as vezes volta para a origem..
|
|
|
|
Postada em 06/07/2006 14:50 hs
é... realmente esta com problemas, eu vou arrumar e ja posto aki...
|
|
|
|
Postada em 06/07/2006 15:08 hs
eu havia me esquecido q não é possivel adicionar eventos ao objeto Shape, por isso deve-se usa o form, isto funciona p/ shape, se vc quiser usar com image ou outro componente, tera q fazer algumas alterações, eu estou testando aki, se eu conseguir fazer funcionar de maneira desejavel, eu posto aki.
'para SHAPE Dim Mover As Boolean Dim XDist As Long Dim YDist As Long
Private Sub Form_Load() Mover = False End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Mover = True XDist = X - Shape1.Left YDist = Y - Shape1.Top End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If Mover Then Shape1.Left = X - XDist Shape1.Top = Y - YDist End If End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Mover = False End Sub
|
|
|
|
Postada em 06/07/2006 15:23 hs
Como prometi está ae usando image, vc pode usar qqr componente p/ este codigo, porem ele deve estar desabilitado (Enabled=False), exeto se vc usar um componente q não aceite eventos como o shape, mas se não aceitar, compensa mais usar o codigo acima pois é mais simples.
Dim Mover As Boolean Dim XDist As Long Dim YDist As Long
Private Sub Form_Load() Image1.Enabled = False 'vc pode definir isso nas propriendades ao inves d fazer por linha de comando Mover = False End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If X >= Image1.Left And _ X <= Image1.Left + Image1.Width And _ Y >= Image1.Top And _ Y <= Image1.Top + Image1.Height Then Mover = True XDist = X - Image1.Left YDist = Y - Image1.Top End If End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If Mover Then Image1.Left = X - XDist Image1.Top = Y - YDist End If End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Mover = False End Sub
|
|
|
|