Ver Mensaje Individual
  #5 (permalink)  
Antiguo 05/09/2005, 15:39
Avatar de David
David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
De acuerdo

Esto es para que todos los controles se vuelvan proporcionales al tamaño del Formulario:
Código:
 
Private Dimensiones(4) As String
Private Sub Form_Load()
Dim Control
On Error Resume Next
For Control = 0 To Controls.Count - 1
	Set Actual = Controls(Control)
	Dimensiones(0) = Dimensiones(0) & CStr(Actual.Left) & ","
	Dimensiones(1) = Dimensiones(1) & CStr(Actual.Top) & ","
	Dimensiones(2) = Dimensiones(2) & CStr(Actual.Width) & ","
	Dimensiones(3) = Dimensiones(3) & CStr(Actual.Height) & ","
Next Control
Dimensiones(4) = CStr(Width) & "," & CStr(Height)
End Sub
Private Sub Form_Resize()
If WindowState = 1 Then Exit Sub
Dim Control
On Error Resume Next
For Control = 0 To Controls.Count - 1
	Set Actual = Controls(Control)
	Actual.Left = (CInt(GetIndex(Dimensiones(0), ",", Control)) * Width) / CInt(GetIndex(Dimensiones(4), ",", 0))
	Actual.Top = (CInt(GetIndex(Dimensiones(1), ",", Control)) * Height) / CInt(GetIndex(Dimensiones(4), ",", 1))
	Actual.Width = (CInt(GetIndex(Dimensiones(2), ",", Control)) * Width) / CInt(GetIndex(Dimensiones(4), ",", 0))
	Actual.Height = (CInt(GetIndex(Dimensiones(3), ",", Control)) * Height) / CInt(GetIndex(Dimensiones(4), ",", 1))
Next Control
End Sub
Function GetIndex(ByVal Cadena As String, ByVal Separador As String, ByVal Index As Integer) As String
Dim UlParada As Integer
Dim Buscar As Integer
Dim IIndex As Integer
If Right(Cadena, 1) <> Separador Then Cadena = Cadena & Separador
UlParada = 1
Do
	Buscar = InStr(UlParada, Cadena, Separador)
	If Buscar = 0 Then Exit Do
	If IIndex = Index Then
		GetIndex = Mid$(Cadena, UlParada, Buscar - UlParada)
		Exit Do
	End If
	IIndex = IIndex + 1
	UlParada = Buscar + 1
Loop
End Function
A pesar de que el texto no lo deja proporcional , pero los controles sí.....
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.