Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado por: E N T E R en Junio 09, 2011, 01:16:36 pm
-
Este metodo yo uso para centrar mis ventanas dentrol del MDIForm, lo que quiero mejorar es el tema de tamaño por que no todos mis Form son iguales.
Private Sub Form_Load()
Me.Width = 15000
Me.Height = 9500
CENTRAR_VENTANAS Form1
End Sub
Public Sub CENTRAR_VENTANAS(FRM As Form)
'FRM.Width = 15000
'FRM.Height = 9500
isq = (MDIForm1.Width - FRM.Width) / 2
If isq < 0 Then isq = 0
arr = (MDIForm1.Height - FRM.Height) / 2
If arr < 0 Then arr = 0
FRM.Left = isq
FRM.Top = arr - 700
End Sub
Lo que le quiero hacer es por ejemplo en el Form_Load poner asi:
CENTRAR_VENTANAS Form1, 15000, 6500
Siendo 15000 el Ancho y 6500 la Altura
-
no entendi que es lo de ancho y alto. ahi en esa funcion vos usas el .height y .width, creo que podes usar .scalewidth y .scaleheight. pero en fin, ese parametro del tamaño, que es? el form? la pantalla???
-
lo que yo hago con esta función es centrar los formularios, los pongo en el form load. Lo que no quiero hacer es no poner mas el:
Me.Width = 15000
Me.Height = 9500
si no solamente CENTRAR_VENTANAS Me, y aca con una coma definir ya el tamaño de altura y ancho del Form
-
Existe un objeto llamado Screen (que contiene los datos de la pantalla)
si haces:
Public Sub CentrarForm(Form as Form)
Form.left=Screen.Width/2 - Form.Width/2
Form.top =screen.height/2 -Form.Height/2
End Sub
Se usaría asi
CentrarForm(Form1)
Lo que hace es calcular la mitad del ancho de la pantalla y colocar en ese punto la mitad del ancho del formulario
Luego calcula la mitad del alto de la pantalla y coloca en ese punto la mitad del alto del form.
-
Sabes por que no uso este metodo, por que solo funciona en MDI maximizados.
- No hagas "Citas" extensas e innecesarias, solo cita lo mas importante.
-
sigo sin entender... vamos por puntos:
* el tamaño del form MDI no lo sabes, pero no importa (es accesible desde frmMdi.ScaleWidth y frmMdi.ScaleHeight)
* vos queres centrar un formulario DENTRO del MDI
* el tamaño del form que queres centrar no interfiere en nada, ya que lo accedes desde frmChild.Width y frmChild.Height (aca uso esto, dado que scaleheight y scalewidth te dan el tamaño exacto del interior del form, y los que no dicen scale, te dan el tamaño exterior del form)
entonces, no veo donde esta la complicacion... no se porque seteas el tamaño del form MDI antes de llamar a esta funcion, podes hacerlo desde las propiedades en el IDE...
y despues, la funcion que vos usas esta bien (exceptuando las 2 ultimas lineas)
-
Mira usando este codigo:
frmMdi.ScaleWidth y frmMdi.ScaleHeightSi vos tenes un MDI, y la propiedad en WindowState=Normal el tamaño del Form1 cambia a no ser que le definas el tamaño del alto y ancho.
Yo lo que quiero con esa funcion es pasarle el tamaño y a la ves centrar.
-
Bueno aca ya esta solucionado esto. Con la ayuda de amigo Raul338.
Public Sub CENTRAR_VENTANAS(frm As Form, Width As Long, Heigth As Long)
frm.Width = Width
frm.Height = Heigth
isq = (MDIForm1.Width - frm.Width) / 2
If isq < 0 Then isq = 0
arr = (MDIForm1.Height - frm.Height) / 2
If arr < 0 Then arr = 0
frm.Left = isq - 150
frm.Top = arr - 880
End Sub
Se usa asi
Private Sub Form_Load()
CENTRAR_VENTANAS Me, 14900, 9300
End Sub