Programación General > Visual Basic para principiantes
Skin Que Muestre El Control Image Vb 6.0
ukyuky:
Hola a todos..
Nesecito saber si hay algun skin que me muestre el control image ya que no puedo modificar el sistema ya que cuenta con un mapa con muchas coordenadas
¿Alguien me puede ayudar?
Nebire:
¿ Puedes explicarte mejor ???.
A qué llamas: 'saber si hay algún skin' ???
Que quieres decir con: 'que muestre un control image' ???
Qué quieres decir con: 'no puedo modificar el sistema' ???
....y que quieres decir con: 'cuenta con un mapa de muchas coordenadas' ???
La verdad, te leo y no de qué cojones estás hablando: de programación, de aplicaciones, de personalizar tu S.O. del robot de las estrellas .... , incluso me pareciera entender (de rebote) que quieres saber el nombre del OCX que maneja el control image... pero... con esas palabras no logro entender que quieres.
Explícate mejor, dedícale 5 minutos, no 20 sg. Unforo no es un teléfono celular, no te cuesta cada palabra que pones, no ahorres. aquí ahorrar palabras es ganarse que pasen de tu mensaje porque no se entiende qué quieres...
ukyuky:
Mis disculpas........
Parece que entendiste....
Quiero saber el nombre del OCX que maneja el control image... ya que tengo una imagen en un control image y no puedo ponerlo en un picture, ya que la imagen en el picture no se adapta a las dimenciones que deseo ya que la imagen es chica.
Espero que entiendas...
Gracias...
Nebire:
Bien, te cuento...
De entrada saber el nombre del ocx no te soluciona tu problema, pero hay formas de solucionarlo, sigue leyendo y te explico 3 maneras de hacerlo... (2 muy parecidas entre sí).
El control Image tiene una propiedad llamada 'Strecht' si la pones a true, la imagen se ajusta al tamaño del control image... así modificas el tamaño del control, la imagen se adapta ditorsionándose si es preciso para rellenar el control image.
El control picturebox se comporta de forma muy distinta, el control picturebox, tiene una propiedad llamada 'autosize' si la activas lo que sucede es que en vez de la imagen ajustarse al control como sucedía con el control image, es el control el que se ajusta al tamaño de la imagen.
Yo sólo uso el control picturebox para mostrar imágenes cuando necesito usar ciertas funcionalidades como usar el método paintpicture o el savepicture, o cuando necesites incluir más controles para que actue como contenedor que es. Si no es así uso el 'image' usa menos recursos en memoria.
Entonces para resolver tu problema hay 3 formas la más sencilla de manejar es incluir dentro del control picturebox un control image, y cuando quieras redimensionar el picturebox, haces lo propio con el control image dentro de él. Para trabajar con la imagen dentro del picturebox te debes referir a ella con su porpiedad 'image' no 'picture' esto es asi: picturebox1.image ...
El otro método es usando el método paintpicture y requiere el uso de 2 controles picturebox, el primero contiene la imagen que deseas con la propiedad establecida a autosize=true, este picturebox está oculto 'invisible=true', ahora cuando queramos modificar el tamaño del picturebox que nos interesa modificamos su tamaño, y con el método paintpicture 'pegamos' la imagen del picturebox oculto en las coordenadas que nos interese del picturebox que nos interesa. Siempre que modifiquemos el picturebox destino, deberemos hacer un paintpicture desde el oculto hacia aquel, por tanto el oculto tiene la imagen tal como se ha recibido de donde sea que se tomare. Debes darte cuenta que este método pega una imagen no persistente, es decir si colocas una ventana encima verás que la imagen se 'pierde', para evitar que esto suceda lo que se debe hacer es activar la propiedad 'autoredraw=true' con ello lo que internamente hace es guardar una copia de la imagen contenida ' image' en memoria, de modo que cuando se exponga la superficie del picturebox, y sea invocado el repaint, redibuja el área expuesta con el contenido que tenía...
El terce método es similar a este 2º pero no pegamos la imagen cada vez que cambiamos el pictureboxdestino, sino sólo lo pegamos 1 vez, luego nada más transferir el gráfico no persistente al picturebox hacer algo como: picturebox1.picture=picturebox1.image , con lo que consigues que ya tenga su propiedad picture dispuesta. Supongamos que ahora quiero modificar el tamaño, antes que nada regojo sus medidas actuales, luego modifico el tamaño del control y mediante paintpicture siendo el mismo el origen y el destino, y tomando como coordenadas de tamaño origen las que guardamos, pegamos la imagen al área del picturebox, nuevamente haremos un picturebox1.picture=picturebox1.image. Este método 3º sin embargo tiene bastantes inconvenientes por lo que sólo debería usarse cuando no quede otro remedio, por ejemplo si pegas la imagen sin rellenar todo el área nueva, la imagen se 'monta' encima de la existente, esto es útil en determinadas situaciones pero porbablemente en muchos casos no sea lo que se quiere hacer. Por tanto te recomiendo que uses el método 1 ó el 2. Este 3º método también se puede usar cuando no te interesa activar autoredraw por alguna razón (por ejemplo si dibujas encima de él), ya que si activas 'autoredraw' los gráficos no persistentes se fijan como gráfico, y por tanto si dibujaste un círculo encima de la imagen se mantiene y sólo puede ser borrado cuando la imagen es rescrita por otra. Un g´rafico no persistente puede borrarse siempre con 'picturebox1.cls'.
Estos 3 mecanismos bien usados son suficientes para controlar cualquier gráfico dentro de un picturebox. Una cosa más... si por ejemplo quieres modificar el tamaño del picturebox, de modo que la imagen se ajuste al picturebox pero manteniendo las proporciones originales, (no deformándose como nos sucedía en el control image), deberás guardar la proporción original de los píxeles (el alto con respecto al ancho), así cuando aumente el alto del picturebox, x pixeles, el ancho deberá aumentar 'x* proporción'
... te explico esto de la proporción. supongamos que nuestra imagen tiene 15x10 píxeles, entonces la proporción es ancho/alto= 15/10=1'5 entonces ahora cada vez que cambie el ancho por ejemplo 22 píxeles el alto deberé cambiarlo 22/1'5 o al revés si lo que quiero es modificar el alto en 47 pixeles el ancho deberé modificarlo así: 47* 1'5 naturalmente añadido al tamaño que ya tiene.... por tanto créate un variable picturebox1_Proporcion que debes actualizar cada vez que alojas una nueva imagen....
ukyuky:
Muchas Gracias...
Otra pregunta...
Puse el control image dentro del picturebox.. hasta ahi todo bien...
Tengo que graficar arriba de la imagen una linea , lo que me pasa es que cuando tenia el control image me mostraba la linea, ahora que lo he puesto dentro del picturebox no me la muestra mas, ¿Como puedo solucionarlo?
Navegación
[#] Página Siguiente
Ir a la versión completa