Ola amigos,tengo una duda en mi proyecto,quiero q el form 2 se ponga al lado del form1,y si muevo el 1 se mueva tambien el 2.Y si muevo el 2 tambien se mueva el uno.No se si me explico bien.
Algo como lo de la imagen.
(http://img216.imageshack.us/img216/2518/dibujoxs8.png)
Cita de: bautistasbr en 24 Julio 2006, 14:37 PM
Ola amigos,tengo una duda en mi proyecto,quiero q el form 2 se ponga al lado del form1,y si muevo el 1 se mueva tambien el 2.Y si muevo el 2 tambien se mueva el uno.No se si me explico bien.
Algo como lo de la imagen.
(http://img216.imageshack.us/img216/2518/dibujoxs8.png)
busca el evento que salta al mover el form y posiciona el otro form según el que ha sido movido... (ejecuta este mismo evento en el activate/load de un form y listo... si quieres saper las apis... el botón de buscar del foro está a tu disposición
me dejaron este code,pero no me va bien,si pudieras exarle un ojo t lo agradeceria.
Form1
Private Type PosF1
X As Long
y As Long
End Type
Dim MiPos As PosF1
Private Sub Form_Load()
On Error Resume Next
Dim X As Long
X = SetWindowPos(hwnd, -1, 0, 0, 0, 0, SWP_FLAGS)
MiPos.X = Me.Top
MiPos.y = Me.Left
End Sub
Private Sub Timer1_Timer()
If MiPos.X <> Me.Top Or MiPos.y <> Me.Left Then
MiPos.X = Me.Top
MiPos.y = Me.Left
Form4.Top = Me.Top
Form4.Left = Me.Left + Me.Width
End If
End Sub
Private Sub Form_GotFocus()
Timer1.Enabled = True
End Sub
Private Sub Form_LostFocus()
Timer1.Enabled = False
End Sub
en un modulo
Option Explicit
Declare Function SetWindowPos Lib "User32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
' SetWindowPos Flags
Const SWP_NOSIZE = &H1
Const SWP_NOMOVE = &H2
Const SWP_NOZORDER = &H4
Const SWP_NOREDRAW = &H8
Const SWP_NOACTIVATE = &H10
Const SWP_DRAWFRAME = &H20
Const SWP_SHOWWINDOW = &H40
Const SWP_HIDEWINDOW = &H80
Const SWP_NOCOPYBITS = &H100
Const SWP_NOREPOSITION = &H200
Public Const SWP_FLAGS = SWP_NOMOVE Or SWP_NOSIZE Or SWP_SHOWWINDOW Or SWP_NOACTIVATE
y en el form q quiero q se ponga al lado esto
Private Type PosF1
X As Long
y As Long
End Type
Dim MiPos As PosF1
Private Sub Form_GotFocus()
Timer1.Enabled = True
End Sub
private sub form_load
MiPos.X = Me.Top
MiPos.y = Me.Left
Me.Top = Form1.Top
Me.Left = Form1.Left + Form1.Width
end sub
Private Sub Form_LostFocus()
Timer1.Enabled = False
End Sub
Private Sub Timer1_Timer()
If MiPos.X <> Me.Top Or MiPos.y <> Me.Left Then
MiPos.X = Me.Top
MiPos.y = Me.Left
Form1.Top = Me.Top
Form1.Left = Me.Left - Form1.Width
End If
End Sub
Pues debería de funcionarte.... ¿Has puesto intervalo al Timer?
Un saludo