Ver Mensaje Individual
  #4 (permalink)  
Antiguo 03/07/2010, 08:18
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 8 meses
Puntos: 29
Respuesta: Aporte: Auto-ajustar tamaño y posicion de controles

' MODO 2
' ESTE RESIZE PERMITE AJUSTAR POR SEPARADO EL ALTO Y ANCHO.
' NO MANTIENE LA RELACION DE ASPECTO ORIGINAL,
' DE MODO QUE LOS TEXTOS DE LOS BOTONES, CHECKBOX,
' LABELS, ETC... PUEDEN QUEDAR MAL AJUSTADOS.
Código vb:
Ver original
  1. Private Sub Form_Resize()
  2.         Static AntHeight As Single
  3.         Static AntWidth As Single
  4.         Static MinimoHeight As Single
  5.         Static MinimoWidth As Single
  6.         Static EnUso As Integer
  7.         If EnUso = 1 Then Exit Sub
  8.         On Local Error Resume Next
  9.         EnUso = 1
  10.         If Me.WindowState <> vbMinimized Then
  11.      
  12.           If AntWidth = 0 Then
  13.             AntWidth = Me.Width
  14.      
  15.             ' AÑADIENDO AQUI "* 0.8" CONSEGUIMOS QUE
  16.            ' EL TAMAÑO MINIMO PERMITIDO AL RESIZAR
  17.            ' SEA INFERIOR AL TAMAÑO ORIGINAL.
  18.            MinimoWidth = Me.Width * 0.8
  19.             ' SIN EMBARGO ESTO OBLIGA A USAR PARA NUESTROS
  20.            ' CONTROLES UNA FUENTE MAS FLEXIBLE, COMO "Arial".
  21.            ' AÚN ASÍ NO HAY QUE REDUCIRLO MUY POR DEBAJO DE
  22.            ' ESTE 0.8 YA QUE SI LO ENCOGES MUCHO LOS TEXTOS QUEDAN ILEGIBLES.
  23.      
  24.           End If
  25.      
  26.           If AntHeight = 0 Then
  27.             AntHeight = Me.Height
  28.      
  29.             ' LOGICAMENTE AQUI TAMBIEN HAY QUE PONER EL "* 0.8"
  30.            MinimoHeight = Me.Height * 0.8
  31.      
  32.           End If
  33.           If Me.Height < MinimoHeight Then Me.Height = MinimoHeight
  34.           If Me.Width < MinimoWidth Then Me.Width = MinimoWidth
  35.      
  36.          ' SOLO HAY QUE CAMBIAR AQUI LOS "TRUE, FALSE" SEGUN QUIERAS
  37.         ' AUTO-AJUSTAR O NO LOS TEXTOS Y SI QUIERES QUE SE AJUSTEN
  38.         ' SEGUN EL ALTO O SEGUN EL ANCHO DEL FORM.
  39.          AjustaControlesForm Me, AntHeight, AntWidth, True, False
  40.      
  41.           AntHeight = Me.Height
  42.           AntWidth = Me.Width
  43.      
  44.          ' AQUI VAN LOS CAMBIOS PERSONALIZADOS, COMO AJUSTAR
  45.         ' EL ALTO DE LOS LISTBOX SI HAY ALGUNO.
  46.         'List1.Height = Me.Height - 500
  47.      
  48.         End If
  49.         EnUso = 0
  50.       End Sub
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!

Última edición por pkj; 03/07/2010 a las 09:05