Kuinka saan tehtyä niin et käyttäjä voi tarrata vaikka jonkun labelin tai textboxin nurkasta kiinni ja saatää siten se kokoa ite???
pistät
label1.width = "sejase" label1.height= "sejase"
tai sitten tuo oli right ja left!
Tämä oli vähän hankalampi tehtävä, mutta sainpa toimivan koodinpätkän aikaiseksi. Koodin toiminta perustuu Controls-taulukkoon, jonka kautta kontrollien tietoihin päästään käsiksi ja pystytään muuttamaan niiden nimien perusteella.
Kun hiirtä liikutetaan formilla, ohjelma tarkistaa, onko hiiri venytettäväksi määrättyjen kontrollien kulmien lähellä (esimerkissä kolmen pikselin etäisyydellä kulmasta). Jos on, hiiren osoitin vaihdetaan nuoleksi (/ = 6, \ = 8), ja jos samanaikaisesti hiiren näppäin on pohjassa, kontrollin koko muuttuu.
Private Sub Form_Load()
'mittayksikkö pikseli
ScaleMode = 3
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Static vk As String, vp As Integer, vx As Integer, vy As Integer
Dim klista() As Variant
Dim k As Object, i As Integer, vr As Integer
Dim x1 As Integer, y1 As Integer, x2 As Integer
Dim y2 As Integer, le As Integer, ko As Integer
'kontrollit, joiden kokoa pystyy muuttamaan
klista = Array("Text1", "Label1")
'kontrollien kulmissa oleva alue (neliön sivujen pituus),
'jossa hiiri näkyy nuolena ja kontrolliin voi "tarttua kiinni"
vr = 3
If Button = 1 Then
Select Case vp
'kosketus vasempaan yläkulmaan
Case 1
If vx - X > 0 And vy - Y > 0 Then
Controls(vk).Move X, Y, vx - X, vy - Y
End If
'kosketus vasempaan alakulmaan
Case 2
If vx - X > 0 And Y - vy > 0 Then
Controls(vk).Move X, vy, vx - X, Y - vy
End If
'kosketus oikeaan yläkulmaan
Case 3
If X - vx > 0 And vy - Y > 0 Then
Controls(vk).Move vx, Y, X - vx, vy - Y
End If
'kosketus oikeaan alakulmaan
Case 4
If X - vx > 0 And Y - vy > 0 Then
Controls(vk).Move vx, vy, X - vx, Y - vy
End If
End Select
Else
'käydään taulukon kontrollit läpi
For i = 0 To UBound(klista)
'haetaan kontrollin tiedot objektiin
Set k = Controls(klista(i))
'haetaan osa objektin arvoista muuttujiin
x1 = k.Left
y1 = k.Top
x2 = k.Left + k.Width
y2 = k.Top + k.Height
le = k.Width
ko = k.Height
'kosketus vasempaan yläkulmaan
If Abs(X - x1) <= vr And Abs(Y - y1) <= vr Then
MousePointer = 8
vp = 1
vx = X + le
vy = Y + ko
'kosketus vasempaan alakulmaan
ElseIf Abs(X - x1) <= vr And Abs(Y - y2) <= vr Then
MousePointer = 6
vp = 2
vx = X + le
vy = Y - ko
'kosketus oikeaan yläkulmaan
ElseIf Abs(X - x2) <= vr And Abs(Y - y1) <= vr Then
MousePointer = 6
vp = 3
vx = X - le
vy = Y + ko
'kosketus oikeaan alakulmaan
ElseIf Abs(X - x2) <= vr And Abs(Y - y2) <= vr Then
MousePointer = 8
vp = 4
vx = X - le
vy = Y - ko
'ei kosketusta
Else
vp = 0
MousePointer = 0
End If
If vp <> 0 Then
vk = k.Name
Exit For
End If
Next
End If
End SubOhhoh. Tuossa tais olla tekemistä.
Kiitos.
Ohhoh. Tuossa tais olla tekemistä.
Kiitos.
Aihe on jo aika vanha, joten et voi enää vastata siihen.