Formularios y cajas de texto ayuda... plz

Iniciado por visualfree, 26 Octubre 2006, 09:10 AM

0 Miembros y 1 Visitante están viendo este tema.

visualfree

La duda es la siguiente de forma puedo controlar que al maximizar y agrandar el formulario no me quede todo deforme porque las cajas de texto se mantienen del mismo tamño cosa que se ve muy fea nose si alguien tiene alguna idea me han dicho q se hace en el evento paint del formulario espero vuestra ayuda saludos...

Snort

   paint? nose, ami eso no me suena, yo lo qe hago es resizearlas dependiendo del tamaño, por ejemplo

private sub form resize
text1.top = form1.height - 4315
end sub


Asi la caja la tendrias siempre 4315 puntos mas altos qe el fin del formulario, por ejemplo, o le pones un top fijo, asi siempre la tendrias a la misma distancia del top del formulario, y para moverla hacia los laos, tambien tienes qe hacer esto, con left y weight.
   Tambien tienes qe agrandar y disminuir el tamaño de todos tus objetos, ej. text1.height = form1.height -255, asi siempre qe el formulario cambie de tamaño la caja de texto llegara casi al final del formulario.

Saludos

CeLaYa

lo que dice Snort esta bien solo que tambien debes recordar que si minimizas el form tendras un error.
Por ejemplo si tienes
text1.height = form1.height -255
al minimizar el Height del text1 sera un número negativo, tebrecomiendo que tambien uses el control de errorres

Private Sub Form_Resize()
     On Local error resume next
     text1.height = form1.height -255
    On Local Error goto 0
End sub}

con eso ya no truena tu programa
"La soledad es el elemento de los grandes talentos".
Cristina de Suecia (1626-1689) Reina de Suecia.

visualfree

esta bien pero igual hay q entenderlo =P:

lo que quiero hacer es que al agrandar el formulario tambien se agrande la caja de texto pero no ocupar todo el fomulario sino por ejemplo 2 centimetros del margen izquierdo  2 centimetros de arriba 2 centimetros de la derecha y dos centimetros de abajo


estos centimetros son el margen que quiero que tenga la caja de texto al maximizarle o agrandarla parece que es complicado poro si alguien me explciara gracias por su ayuda salu2...

CeLaYa

mira lo puedes hacer asi



Private sub Form_Resize()

  '567 twip = 1 cm

   on local error resume next
   text1.left = 567*2 ' Margen izquierdo
   text1.with = me.scalewith - 567*4 'Margen derecho
   text1.top = 567*2 ' Margen superior
   text1.Height = me.scaleHeight - 567*4 'Margen inferior
   on local error goto 0

end sub
"La soledad es el elemento de los grandes talentos".
Cristina de Suecia (1626-1689) Reina de Suecia.

visualfree


CeLaYa

pues en VB 6.0 hay veces que se complica un poquito, mira si tienes 2 o mas controles que quieras redimencionar, tienes que calcularlo tomando en cuenta el tamaño de cada control

tomando el ejemplo anterior pero ahora con 2 controles
supongamos que quieres que una caja de texto ocupe la mitad superior del form y la segunda caja de texto ocupe la mitad inferior y que haya 1cm de separación entre ellas y que tengas 1cm de separación con respecto al borde del from:

Private sub Form_Resize()

   on local error resume next
   text1.left = 567*1 ' Margen izquierdo

   'Margen derecho se toman 2cm porque 1cm es del borde izquierdo y otro cm es del borde derecho
   text1.with = me.scalewith - 567*2

   text1.top = 567*1' Margen superior
   text1.Height = (me.scaleHeight/2) - 567*2 'Margen inferior

  '---------------------------------------------------------------
   text2.left = 567*1 ' Margen izquierdo

   'Margen derecho se toman 2cm porque 1cm es del borde izquierdo y otro cm es del borde derecho
   text2.with = me.scalewith - 567*2

   text2.top = (567*.1) + text1.Height ' Margen superior
   text1.Height = (me.scaleHeight/2) - 567*2 'Margen inferior


   on local error goto 0

end sub


si tratas de redimencionar todos los controles dentro del form asi, aveces se torna un poco complicado si son varios, por decir que tubieses 10 cajas de texto, yo he optado tambien opr poner PictureBox's y utilizo sus propiedades de ALIGN y ya dentro de cada uno redimensiono los controles


mira este es parte del codigo de un programa que estoy haciendo


aqui puse un picture con Align = 3, solo redimensiono el ancho
y le resto el ancho de otro Picture
Private Sub Form_Resize()
    picHerr.Width = Me.ScaleWidth - picCont.Width
End Sub

y dentro de ese picture tengo otros y con esto hago que se pongan siempre al centro

Private Sub centrar(ByRef x As PictureBox)
    x.Top = (picHerr.ScaleHeight - x.Height) / 2
    x.Left = (picHerr.ScaleWidth - x.Width) / 2
End Sub

a esta funcion le mando el control que quiero centar






"La soledad es el elemento de los grandes talentos".
Cristina de Suecia (1626-1689) Reina de Suecia.

CeLaYa

aqui es solo cuestión de pensarle y rato y tener las matematicas aun lado jeje
"La soledad es el elemento de los grandes talentos".
Cristina de Suecia (1626-1689) Reina de Suecia.

Hans el Topo

#8
el evento paint se dispara despues del activate...(load/resize/activate/paint) creo


Lo que tu quieres se hace con porcientos si por ejemplo quieres posicionar todo el rato tu text en el centro seria algo asi...
'en el evento resize ponemos esto


'calculamos justo el medio de la posición vertical y colocamos centrado el text
text.top=me.scaleheight/2 - text.height/2 
'calculamos justo el medio de la posición horizontal y colocamos correctamente el text
text.left=me.scalewidth/2- text.width/2


 

visualfree