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 Sub
Ohhoh. Tuossa tais olla tekemistä.
Kiitos.
Ohhoh. Tuossa tais olla tekemistä.
Kiitos.
Aihe on jo aika vanha, joten et voi enää vastata siihen.