Tamaño formularios y resolución de pantallas

Estoy haciendo un CD autoejecutable en el que he puesto un formulario que me permite ver las fotos que contiene.
Mi problema es que tal y como lo he hecho dependiendo de la resolución de la pantalla (800*600, 1024*768) se ve todo el formulario o no. ¿Hay algún modo de solucionarlo?
1

1 respuesta

Respuesta
1
Pues no, este maravilloso lenguaje llamado visual basic, no se adapta a las resoluciones, ¿y tu dirás y que hago?, pues bueno, en proyecto componentes tienes un objeto llamado sysinfo o algo así, con el que obtendrás la resolución de la pantalla, y a partir de aquí deberá redimensionar tus forms y objetos mutiplicando o dividiendo por un factor...
Mi problema es que necesito hacerlo de modo que no sea necesario instalar nada porque es para irlo viendo en distintos PC y no puedo ponerme a instalar cosas en cada uno de ellos.
Por ello si conoces otro modo de hacerlo sin crear un instalable, sino para que se ejecute desde un CD te lo agradecería mucho,
Nacho
P.d. La verdad es que es una lata eso de que VB no reconozca el tamaño de pantalla sólito.
¿Lo has agregado al hacer el instalable?
Muchas gracias de nuevo por tu ayuda,
Ya lo tengo montado como me has recomendado pero ahora me surge una nueva duda.
Al generar el exe y tratar de ejecutarlo en otro ordenador da error por que le falta el complemento sysinfo.ocx. ¿Sabes si hay algún modo de incluirlo en el CD para que el programilla que he hecho funcione en cualquier PC?
Muchas gracias de nuevo,
Nacho
En primer lugar tranqui que no abusas, ¿pa eso tamos ok?
Pues bueno, un modulo es una buena idea, a ver4 como lo montamos.. debemos hacer varias cosas, primero agregar un modulo, y dentro hacer una rutina llamada sub main
De manera que en el modulo
Quedara
Sub Main()
End sub
Luego en el menu proyecto, peopiedades de proyecto1(el nombre de tu proyecto) ponemos como formulario inicial el sub main, ¿qué ya te aparecerá allí vale?
y ke ponemos en el sub main??
Pos mirate la instruccion shell,que creo k puede ejecutar el bat,
Shell(Path "\boot.bat)
Luego debajo haces un show del formulariuo que antes era el primero que se cargaba
De manera k hara em main y luego cargara le primer form
Pues debes guardar en todos los pc que vayas a usar la aplicación, todos los archivos de tu pc que se llamen sysinfo*. * Y luego ir a una sesión de ms-dos y situarte en el directorio de la aplicación y teclear:
regsvr32 sysinfo.ocx
Asi lo registras
He estado investigando y tengo una solución alternativa que esta funcionando bastante bien aunque aun me gustaría pulirla un poco. Es para evitar tener que copiar o instalar cosas en los PC's pues voy a distribuir el CD entre gente inexperta y no quiero hacerles líos.
Lo que he hecho es copiar en el propio Cd el archivo sysinfo.ocx. Aparte de eso vale con añadir en el boot.bat de inicio una instrucción:
set path = app.path
De modo que al ejecutar el programa a través del boot.bat ya reconoce el componente y funciona sin problemas.
Ahora lo quiero es tratar de ver si es posible incluir esa instrucción en algún punto del ejecutable para que funcione sin necesidad de pasar por el boot.bat.
Aun no se utilizar los módulos (soy autodidacta), ¿tu crees que podría incluirlo ahí para que la lea antes de abrir el formulario?
Muchas gracias de nuevo, y si crees que estoy abusando dímelo por favor,
Nacho
Muchas gracias,
Recopilo lo que he hecho al final siguiendo tus consejos por si sirve de ayuda a alguien más:
1. He incluido el control sysinfo para detectar la resolución de la pantalla.
2. En base a el he creado factores de corrección para aplicárselos al tamaño y intentar de los objetos.
3. Para evitar crear un programa de instalación se copia el archivo sysinfo.ocx junto al exe resultante.
4. Para que reconozca el control se crea en un modulo la subrutina main que incluye la instrucción: Path=app.path.
Y de este modo no hace falta crear archivo de instalación, se puede ejecutar desde el propio Cd.
Muchas gracias de nuevo Uripe por tu inestimable colaboración y la paciencia que has mostrado con un novato como yo,
Nacho

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas