Avatar billede dellevela Nybegynder
10. maj 2003 - 14:32 Der er 4 kommentarer og
1 løsning

flyt image rundt

jeg har et images som jeg gerne vil have at når man trykker på det bliver musen til billede og man kan flytte det der hen hvor man har lyst. når man så klikker igen bliver det stående. er der nogle der har en ide til hvordan man laver det?

på forhånd tak!
Avatar billede martin_moth Mester
10. maj 2003 - 15:39 #1
Hvis vi antager, at dit picture hedder Picture1, virker følgende kode:

Option Explicit
  Dim StartX 'Global variabel
  Dim StartY 'Global variabel

Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  StartX = X
  StartY = Y
End Sub

Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
  Picture1.Left = Picture1.Left + (X - StartX)
  Picture1.Top = Picture1.Top + (Y - StartY)
End Sub
Avatar billede martin_moth Mester
10. maj 2003 - 15:43 #2
Du kan forbedre det ved at skifte cursortypen når du rykker rundt på billedet ved at bruge MousePointer:

Option Explicit
Dim StartX
Dim StartY


Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  MousePointer = 15 '<-- NY LINIE
  StartX = X
  StartY = Y
End Sub

Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
  Picture1.Left = Picture1.Left + (X - StartX)
  Picture1.Top = Picture1.Top + (Y - StartY)
  MousePointer = 0 '<-- NY LINIE
End Sub
Avatar billede dellevela Nybegynder
10. maj 2003 - 16:15 #3
tak men vil du ikke lave sådan at musen forsvinder når man klikker på billede!
Avatar billede martin_moth Mester
10. maj 2003 - 16:34 #4
Skjul cursor er beskrevet i www.eksperten.dk/spm/42631
Avatar billede sjh Nybegynder
11. maj 2003 - 01:22 #5
ha ha det kan også laves med lidt API :-)


Option Explicit

Private Declare Sub ReleaseCapture Lib "user32" ()
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Long) As Long

Public Sub hWndMove(ByVal lnghWnd As Long)
  Call ReleaseCapture
  Call SendMessage(lnghWnd, &HA1, 2, 0&)
End Sub

Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  If Button = vbLeftButton Then
    Call hWndMove(Picture1.hwnd) '<-- Flytter Picture1
  End If
End Sub



'--- Her er lige et par stykker mere :-) ---
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  If Button = vbLeftButton Then
    Call hWndMove(Me.hwnd) '<-- Flytter Form1
  End If
End Sub

Private Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  If Button = vbLeftButton And Check1.Value = 1 Then '<-- Check1
    Call hWndMove(Command1.hwnd) '<-- Flytter Command1
      Else
    MsgBox "Du trykker på " & Command1.Name
  End If
End Sub
'--- Her er lige et par stykker mere :-) ---
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB