Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: $Edu$ en 7 Octubre 2011, 17:47 pm



Título: Como crean sus app teniendo en cuenta la resolucion del usuario?
Publicado por: $Edu$ en 7 Octubre 2011, 17:47 pm
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!


Título: Re: Como crean sus app teniendo en cuenta la resolucion del usuario?
Publicado por: x64core en 7 Octubre 2011, 17:54 pm
scrollbar? :P


Título: Re: Como crean sus app teniendo en cuenta la resolucion del usuario?
Publicado por: $Edu$ en 7 Octubre 2011, 18:08 pm
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


Título: Re: Como crean sus app teniendo en cuenta la resolucion del usuario?
Publicado por: x64core en 7 Octubre 2011, 18:12 pm
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


Título: Re: Como crean sus app teniendo en cuenta la resolucion del usuario?
Publicado por: BlackZeroX en 7 Octubre 2011, 18:25 pm
*
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!¡.


Título: Re: Como crean sus app teniendo en cuenta la resolucion del usuario?
Publicado por: $Edu$ en 7 Octubre 2011, 18:39 pm
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?


Título: Re: Como crean sus app teniendo en cuenta la resolucion del usuario?
Publicado por: Deeo Raiser en 8 Octubre 2011, 21:47 pm
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


Título: Re: Como crean sus app teniendo en cuenta la resolucion del usuario?
Publicado por: Sanlegas en 8 Octubre 2011, 21:53 pm
Tienes que sacar las medidas de la resolución del monitor y en base a ellas acomodar tus controles, solo es proporción  :P


Título: Re: Como crean sus app teniendo en cuenta la resolucion del usuario?
Publicado por: seba123neo en 8 Octubre 2011, 23:14 pm
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.


Título: Re: Como crean sus app teniendo en cuenta la resolucion del usuario?
Publicado por: $Edu$ en 9 Octubre 2011, 15:04 pm
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


Título: Re: Como crean sus app teniendo en cuenta la resolucion del usuario?
Publicado por: $Edu$ en 10 Octubre 2011, 23:36 pm
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!


Título: Re: Como crean sus app teniendo en cuenta la resolucion del usuario?
Publicado por: $Edu$ en 14 Octubre 2011, 00:09 am
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:
Código
  1. Private Declare Function EnumDisplaySettings Lib "user32" Alias "EnumDisplaySettingsA" _
  2.    (ByVal lpszDeviceName As Long, ByVal iModeNum As Long, _
  3.    lpDevMode As Any) As Boolean
  4.  
  5. Private Declare Function ChangeDisplaySettings Lib "user32" Alias "ChangeDisplaySettingsA" _
  6.    (lpDevMode As Any, ByVal dwflags As Long) As Long

No tendre problemas con si es Windows vista, o windows xp o windows7 no?


Título: Re: Como crean sus app teniendo en cuenta la resolucion del usuario?
Publicado por: raul338 en 14 Octubre 2011, 01:33 am
ScrollControl by LeandroA (http://leandroascierto.com/blog/scrollcontrol/)


Título: Re: Como crean sus app teniendo en cuenta la resolucion del usuario?
Publicado por: $Edu$ en 14 Octubre 2011, 01:54 am
Bueno probare y sino veo que hago :/ saludos!


Título: Re: Como crean sus app teniendo en cuenta la resolucion del usuario?
Publicado por: $Edu$ en 17 Octubre 2011, 17:53 pm
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


Título: Re: Como crean sus app teniendo en cuenta la resolucion del usuario?
Publicado por: BlackZeroX en 18 Octubre 2011, 07:18 am
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!¡.


Título: Re: Como crean sus app teniendo en cuenta la resolucion del usuario?
Publicado por: seba123neo en 18 Octubre 2011, 14:42 pm
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.


Título: Re: Como crean sus app teniendo en cuenta la resolucion del usuario?
Publicado por: $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!


Título: Re: Como crean sus app teniendo en cuenta la resolucion del usuario?
Publicado por: 79137913 en 18 Octubre 2011, 23:01 pm
HOLA!!!

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:
Código
  1. 'en los tag de los controles le ponen el top inicial.
  2. For each control in me
  3.    if mid(control.name,1,6) <> "NoMove" then Control.top = val(control.tag) - NoMoveVScroll.value
  4. next
  5.  

No es solo ese el code pero con eso les tiene que andar.
GRACIAS POR LEER!!!


Título: Re: Como crean sus app teniendo en cuenta la resolucion del usuario?
Publicado por: BlackZeroX en 19 Octubre 2011, 17:37 pm
.
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
Código
  1. Option Explicit
  2. Dim oThis As Class1
  3.  
  4. Private Sub Form_Initialize()
  5.    Set oThis = New Class1
  6.    Set oThis.oForm = Me
  7. End Sub
  8.  
  9. Private Sub Form_Terminate()
  10.    Set oThis = Nothing
  11. End Sub
  12.  

en una clase
Código
  1. Option Explicit
  2. Public WithEvents oForm As Form
  3.  
  4. Private Sub oForm_Load()
  5.    MsgBox "Hola Mundo"
  6. End Sub
  7.  
  8. Private Sub oForm_Unload(Cancel As Integer)
  9.    MsgBox "Adios Mundo Cruel"
  10. End Sub
  11.  

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!¡.