Resulta que estoy creando una aplicacion donde aparece un form, que se inicia arriba de todo en la pantalla y a medida que va ingresando dando unos datos ese form se va agrandando hacia abajo, el limite de datos que ingresara ( veces q se agrandara el form) seran 32, por lo que en una resolucion de pantalla de 1280 x 1024 no hay problema porque entra justito, pero que pasa si el usuario tiene una resolucion de pantalla de 1024 x 780? podra ver hasta el dato 24 por ahi, pero luego no vera mas y no podra correr el form hacia arriba ya que solo se permite mover las ventanas hacia los costados como ya sabran.
Que es lo que hacen en esos casos? talvez suena estupida mi pregunta, pero bueno, no seria nada raro en mi :P
Gracias!
scrollbar? :P
Si pero como sabes cuando llego a lo que puede ver?, queria ver alguna otra solucion distinta porque no me gusta mucho las barras esas xD
pues primeramente el programa deberia obtener la resolucion de la pantalla ya con eso luego con tus memidas si sobre pasa que salga el scrolbar :P
esperemos a alguien mas :xD
*
Debes espesificar una resolucion AxB para tu programa... por ejemplo los juegos hacen eso... tambien puedes crear un UserControl o un Modulo de Clase que te manipule las resoluciones de tus forms (Elementos)... no es muy viable esto ultimo!¡.
Dulces Lunas!¡.
Dices modifcar la resolucion desde codigo una vez que se inicia mi aplicacion? y al cerrarla volver a modificar al anterior, asi como en los juegos o que?
Se me ocurre (Si usas visual basic 6, no se si este es el caso), meter ese formulario dentro de un Formulario MDI de forma que tu Form sea el form hijo, cuando se agrande automáticamente van a aparecen las scroll bar.
Para hacerlo debes agregar al proyecto un Form MDI y en la propiedad "MDI Child" de tu formulario (el que estas usando actualmente) debe quedar en TRUE.
Aprueba, luego me cuentas.
Saludos
Tienes que sacar las medidas de la resolución del monitor y en base a ellas acomodar tus controles, solo es proporción :P
la mas facil, es hacer las pantallas de tamaños fijos, pero lo que esta mal es eso que se va incrementando, eso deberia tener un limite y que despues scrolle y listo.
Ok, usare scrolls si no me queda otra y ni p**a idea de como lo hare porque en forms nunca he usado no lo imagino, pero vere, de ultima pregunto si no puedo.
Gracias y gracias deeo raiser, lo tomare en cuenta por las dudas. Saludos
Lo del Form MDI no me gusto, eso de que queda dentro de otro form, no me gusta mucho como queda, ahora.. lo de los scrolls, pensaba que los forms tenian una propiedad Scroll para ponerle true xD pero de seguro me decian para que use los scrolls pero los componentes ( los controles) no?
Nunca he hecho eso pero diganme si tengo razon en lo que dije y si pueden me dicen como lo harian, vuelvan a leer mi primer comentario por las dudas, saludos!
Bueno no he podido con las scroll bars, no tengo ni idea de como hacer para insertarlas en el form para que este scrolle, asi que optare por verificar la resolucion de pantalla al inicio de la app y si es menor a 1280 x 1024 que establezca esa resolucion, y luego al cerrar la app que establezca la solucion que tenia antes, les parece? o no queda bien? si me dicen que si, me dejan contento xD
Edit: uso estas 2 apis:
Private Declare Function EnumDisplaySettings Lib "user32" Alias "EnumDisplaySettingsA" _
(ByVal lpszDeviceName As Long, ByVal iModeNum As Long, _
lpDevMode As Any) As Boolean
Private Declare Function ChangeDisplaySettings Lib "user32" Alias "ChangeDisplaySettingsA" _
(lpDevMode As Any, ByVal dwflags As Long) As Long
No tendre problemas con si es Windows vista, o windows xp o windows7 no?
ScrollControl by LeandroA (http://leandroascierto.com/blog/scrollcontrol/)
Bueno probare y sino veo que hago :/ saludos!
Pregunto aca ya que es del mismo tema.. Generalmente las notebooks, hasta que resolucion de pantalla pueden lograr? creen que si le pongo a mi programa que verifique la resolucion de pantalla y si es menor a 1280 x 1024 qe es con la que funciona de lujo mi app, la establezca a esa misma, no tendre problemas?
Hablo de las notebooks porque en si, el programa es para esa notebook, pero no puedo ir a preguntarle: Tiene para poner resolucion de pantalla a 1280 x 1024?
Y como yo se que ustedes saben, me podran decir, porque en la de un amigo vi que era 1320 por ahi X 760, es decir son hasta mas ancha q mi monitor pero menos de altura, pero no se, si alguien me saca las dudas le agradezco, es una boludez lo q pregunto :P
Si haces una resolucion estandarizada no habra problemas un 800x600 jala donde quiera alctualmente... igual tu duda se soluciona INVESTIGANDO sobre las susodichas notebooks...
Dulces Lunas!¡.
no hay que complicarse en esto, nada de averiguar la resolucion ni nada de eso, eso es chapuza, tenes 2 formas:
1 - hacer las ventanas fijas de tamaño (asi lo hago yo) hoy en dia la resolucion minima es de 800x600 o mas, con eso ya te alcanza para hacer una ventana bastante frande.
2 - hacer que se pueda dimesnionar como el usuario quiera y al mismo tiempo aplicar el redimensionamiento a los controles, como hace cualquier programa, por ejemplo firefox, la barra de direcciones se hace grande segun el ancho de la pantalla, eso es simple, en .NET en 2 patadas lo haces con la propiedad Anchor, en vb6 no hay nada de eso , hay un control en PSC que simula el ancor pero yo prefiero escribir un codigo limpio.
eso si, lo de redimensionar controles no debes redimensionar la fuente como vi en algunos ejemplos, eso queda horrible, simplemente es redimensaionar el ancho o alto, no hay otra.
saludos.
Gracias ya solucione gracias a 79137913 con un scroll, ya que antes no habia podido yo, pero ahora quedo todo perfect y no me importa mas la resolucion :P, gracias a todos por sus comentarios, aprendi mas de 4 cosas jeje, saludos!
HOLA!!!
Cita de: $Edu$ en 18 Octubre 2011, 15:37 PM
Gracias ya solucione gracias a 79137913 con un scroll, ya que antes no habia podido yo, pero ahora quedo todo perfect y no me importa mas la resolucion :P, gracias a todos por sus comentarios, aprendi mas de 4 cosas jeje, saludos!
No era muy dificil, agrego una scrollbar vertical con el nobre NoMoveVScroll
En su evento change
Le ponen:
'en los tag de los controles le ponen el top inicial.
For each control in me
if mid(control.name,1,6) <> "NoMove" then Control.top = val(control.tag) - NoMoveVScroll.value
next
No es solo ese el code pero con eso les tiene que andar.
GRACIAS POR LEER!!!
.
Hay que definir que se considera un codigo limpio!¡... ya que puedo instanciar el form en una clase y en este poner el codigo que se encargue de redimensionar los controles, pero claro, .NET ya es la otra oreja del burro.
por ejemplo:
en Form
Option Explicit
Dim oThis As Class1
Private Sub Form_Initialize()
Set oThis = New Class1
Set oThis.oForm = Me
End Sub
Private Sub Form_Terminate()
Set oThis = Nothing
End Sub
en una clase
Option Explicit
Public WithEvents oForm As Form
Private Sub oForm_Load()
MsgBox "Hola Mundo"
End Sub
Private Sub oForm_Unload(Cancel As Integer)
MsgBox "Adios Mundo Cruel"
End Sub
y con eso se podria programar una clase Generica que puede o no redimencionar o hacer X cosa y dejar el codigo del form intacto... claro que limitandose... por ejemplo, quedaria bien el codigo de 79137913 estandarizando una nomeclatura para los nombres de los controles en todos los forms, en aquel caso agregando "NoMove" en el nombre de los mismos, y se podria instancia la clase en varios forms siendo esto lo mas deseado de esta manera se crearia un "codigo limpio" con respecto a evitar codigo repetido en varios forms, .Net es muy bueno eso me queda claro!¡.
Me parecio interesante decir esto de la clase debido a que seguro querra hacer lo mismo en mas de un solo form.
Dulces Lunas!¡.