Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Cambiar color a todos los componts del form (https://www.clubdelphi.com/foros/showthread.php?t=6486)

pepe2000 10-01-2004 00:06:41

Cambiar color a todos los componts del form
 
Hola a todos.
Cuando se activa un form como showmodal, lo que necesito es que todo el fondo de la pantalla (El formulario principal), se tiña de color piedra o se sombree para evitar confusiones en la visualizacion del usuario.

Inicialmente pensé en sobreescribir un form semitransparente pero esto me parece que no es la forma correcta. Se que ustedes conocen una manera mejor

Gracias por anticipado.

SALU2

delphi.com.ar 10-01-2004 02:09:21

El fondo de la pantalla?? ... El color del Form + algún panel, frame, group box???
Puedes jugar con la propiedad ParentColor de los componentes, y modificar solo el color del parent indicado, en este caso tu form.

Saludos!

pepe2000 10-01-2004 02:25:59

tu sabes que al poner la propiedad enabled:=false a un boton, los graficos, el texto y todo lo que hay dentro de el toma un color que indica desactivado.

Lo mismo quiero hacer con todo el form principal que envia a otra form como showmodal

Espero entiendas.

OTRA COSA: Mediante mi CORREO accedo a la respuesta de este o cualquier hilo pero SIEMPRE que quiero hacer una respuesta el foro no me reconoce y pide una y otra vez la clave de usuario a conectarse. Tengo que ingresar con http://www.clubdelphi.com/foros para que pueda seguir consultando en el hilo (Una ingrata situacion). Espero que puedas avisar a quien corresponda.

Gracias

__cadetill 10-01-2004 11:09:53

Cita:

pepe2000 comentó:
OTRA COSA: Mediante mi CORREO accedo a la respuesta de este o cualquier hilo pero SIEMPRE que quiero hacer una respuesta el foro no me reconoce y pide una y otra vez la clave de usuario a conectarse. Tengo que ingresar con http://www.clubdelphi.com/foros para que pueda seguir consultando en el hilo (Una ingrata situacion). Espero que puedas avisar a quien corresponda.
Respecto a esto... tienes habilitadas las cookies en la configuración del navegador y en tu perfil de usuario?

cascarrabias 06-03-2008 23:27:00

Cita:

Empezado por pepe2000 (Mensaje 25771)
Hola a todos.
Cuando se activa un form como showmodal, lo que necesito es que todo el fondo de la pantalla (El formulario principal), se tiña de color piedra o se sombree para evitar confusiones en la visualizacion del usuario.

Inicialmente pensé en sobreescribir un form semitransparente pero esto me parece que no es la forma correcta. Se que ustedes conocen una manera mejor

Gracias por anticipado.

SALU2

Hola, se que es un post muy viejo, pero PEPE200...lograste encontrar la manera de hacer esto? yo tambien llamo a otra form con showmodal y quiero que mi mainform se distinga que esta deshabilitado, una forma es como decian con los colores y el parent pero yo no puedo modificar esto porque tengo muchos componentes con color propio que no deben ser iguales al parent, lo de la ventana transparente ha sido mi unica opcion, alguien sabe como lograr que el main form que esta deshabilitado se pueda ver como de color gris o piedra todo, para evitar confusiones con el usuario de donde esta! GRacias

Neftali [Germán.Estévez] 07-03-2008 17:37:07

1 Archivos Adjunto(s)
Hece tiempo estuvimos hablando del tema; Creo que a partir de un ejemplo de Seoane y algunos cambios hechos por mi, resultó esto: (mirar adjunto)

Trabaja con tres forms en pantalla y va colocando el Gris todos menos el activo.

cascarrabias 07-03-2008 18:03:00

disculpa, gracias, nadamas, tengo un problema, al compilar el ejemplo que me mandas, me sale un error :

[DCC Error] E2202 Required package 'RxDB6' not found

utilizo delphi 2007!

sabes a a que se debe el error? gracias por tu tiempo y saludos

Neftali [Germán.Estévez] 07-03-2008 18:16:00

Eso es porque a veces sin darme cuenta subo los proyectos con las opciones que tengo por defecto.
Accede a la opciones del proyecto y en la pestaña packages, desmarca la opción de "Build with runtime packages"

cascarrabias 07-03-2008 18:33:36

GRacias brother, listo, lo he podido checar, esta muy bien hecho, gracias bro!

pepe2000 10-03-2008 21:28:19

Cita:

Empezado por Neftali (Mensaje 271496)
Hece tiempo estuvimos hablando del tema; Creo que a partir de un ejemplo de Seoane y algunos cambios hechos por mi, resultó esto: (mirar adjunto)

Trabaja con tres forms en pantalla y va colocando el Gris todos menos el activo.

Está muy interesante esto que han hecho, pero, ya que ustedes son los gurus de la programación, no puedo dejar de incitarlos a visitar la página de softónic (por ejemplo) y, al darle click en la imagen de la derecha, una pantalla azul transparente "tapa" toda la ventana y sobre ella se visualizan las imagenes.
Al tratarse de una transparencia, el fondo no se convierte necesariamente a gris completamente sino que disminuye el contraste del fondo.
Pero un efecto más espectacular es el que se visualiza cuando se coloca: "inicio - apagar equipo", se espera un momento y los colores del fondo cambian mágicamente a un suave color gris, pero la ventana de "apagar" queda a todo color.
Espero que acepten el reto.
Un saludo.

Neftali [Germán.Estévez] 11-03-2008 12:39:49

Cita:

Empezado por pepe2000 (Mensaje 272109)
Está muy interesante esto que han hecho, pero, ya que ustedes son los gurus de la programación, no puedo dejar de incitarlos a visitar la página de softónic (por ejemplo) y, al darle click en la imagen de la derecha, una pantalla azul transparente "tapa" toda la ventana y sobre ella se visualizan las imagenes.
Al tratarse de una transparencia, el fondo no se convierte necesariamente a gris completamente sino que disminuye el contraste del fondo.
Pero un efecto más espectacular es el que se visualiza cuando se coloca: "inicio - apagar equipo", se espera un momento y los colores del fondo cambian mágicamente a un suave color gris, pero la ventana de "apagar" queda a todo color.
Espero que acepten el reto.
Un saludo.

El ejemplo te da idea de lo que se puede hacer. En este caso está hecho utilizando imágenes y paneles. Para lo que tú comentas posiblemente sería más adecuado y más fácil utilizar transparencias.
Este ejemplo estaba hecho con Delphi 6, que no las soporta; Las ultimas versiones ya las soportan.

En cuanto al reto, más que a reto me ha sonado a "háganme el trabajo" así que por mi parte lo voy a desestimar.

Un saludo.

jachguate 11-03-2008 14:43:46

Antes de desestimarlo, sugiero a quienes puedan interesarse esperar a que pepe2000 publique su propuesta. No imagino que lance un reto sin estar el mismo dispuesto a participar.

Un saludo.

;)

Delphius 11-03-2008 15:22:23

Cita:

Empezado por Neftali (Mensaje 272277)
El ejemplo te da idea de lo que se puede hacer. En este caso está hecho utilizando imágenes y paneles. Para lo que tú comentas posiblemente sería más adecuado y más fácil utilizar transparencias.
Este ejemplo estaba hecho con Delphi 6, que no las soporta; Las ultimas versiones ya las soportan.

En cuanto al reto, más que a reto me ha sonado a "háganme el trabajo" así que por mi parte lo voy a desestimar.

Un saludo.

Hola Neftali...
¿A que te refieres con transparencias?
Que yo sepa a partir de D6 existe la propiedad AlphaBlend y AlphaBlendValue para conseguir efectos de transparencias.

Con jugar adecuadamente con el color del formulario y AlphaBlendaValue se consiguen efectos muy buenos.

Lo único indispensable es que el sistema operativo sea XP.

Saludos,

Neftali [Germán.Estévez] 11-03-2008 16:46:56

Cita:

Empezado por Delphius (Mensaje 272308)
¿A que te refieres con transparencias?
Que yo sepa a partir de D6 existe la propiedad AlphaBlend y AlphaBlendValue para conseguir efectos de transparencias.
Con jugar adecuadamente con el color del formulario y AlphaBlendaValue se consiguen efectos muy buenos.
Lo único indispensable es que el sistema operativo sea XP.

A eso me refería, pero me he hecho un lío. Normalmente estoy con D6 y con D2007; Desde hace poco he revivido D5 por un proyecto antiguo y con tanto Delphi me he hecho un lío. :o
Efectíavamente me refería a las propiedades de AlphaBlend y AlphaBlendValue, que sí están en D6, no en D5.

Gracias por la corrección Delphius.

Delphius 11-03-2008 17:55:31

Cita:

Empezado por Neftali (Mensaje 272336)
A eso me refería, pero me he hecho un lío. Normalmente estoy con D6 y con D2007; Desde hace poco he revivido D5 por un proyecto antiguo y con tanto Delphi me he hecho un lío. :o
Efectíavamente me refería a las propiedades de AlphaBlend y AlphaBlendValue, que sí están en D6, no en D5.

Gracias por la corrección Delphius.

No hay porque sentirse apenado (por lo de la carita). A cualquiera se nos puede olvidar algunas cosas, más si estamos concentrado en el trabajo.

No tienes que agradecerme por la corrección. Además, que pueden pensar el resto de los foristas... ¿¡como es que el alumno le corrije al Maestro!?;):D

Saludos,

pepe2000 12-03-2008 03:07:11

Claro que participo
 
Hola amigos foristas,
Entiendo que algunas personas crean que buscamos que el trabajo lo haga otro, pero en realidad sobre el tema de transparencias, les voy a contar lo siguiente:
- Tengo un formulario principal donde está el menú de opciones de mi sistema
- Cada opción abre un formulario de forma: Showmodal (es decir no se puede entrar a otra opción mientras no se cierre la ventana).
- Algunos controles abren (con Showmodal de nuevo) otras ventanas, para buscar un alumno, o para registrar datos.
- El problema era que entre las ventanas abiertas, se creaba una confusión para el usuario para saber cual era la ventana más arriba de las demás.
- Lo he solucionado creando un procedimiento que abre un formulario transparente (del tamaño de mi form principal - casi siempre toda la pantalla), y luego abriendo la ventana en sí.
- Esta solución crea un efecto de parpadeo molesto, de ahi mi pregunta para conocer una respuesta mejor.

La pregunta más interesante, y algo que definitivamente no voy a poder hacer y que queda como reto (jeje, sigo en lo mismo), es hacer ese efecto de windows cuando se coloca: Inicio - Apagar, y se espera un momento, cuando el fondo entero se convierte en gris.

¿Seguiré intentándolo por mi cuenta? Por supuesto, para eso somos programadores...

Salu2.

Delphius 12-03-2008 03:49:48

Cita:

Empezado por pepe2000 (Mensaje 272579)
Hola amigos foristas,
Entiendo que algunas personas crean que buscamos que el trabajo lo haga otro, pero en realidad sobre el tema de transparencias, les voy a contar lo siguiente:
- Tengo un formulario principal donde está el menú de opciones de mi sistema
- Cada opción abre un formulario de forma: Showmodal (es decir no se puede entrar a otra opción mientras no se cierre la ventana).
- Algunos controles abren (con Showmodal de nuevo) otras ventanas, para buscar un alumno, o para registrar datos.
- El problema era que entre las ventanas abiertas, se creaba una confusión para el usuario para saber cual era la ventana más arriba de las demás.
- Lo he solucionado creando un procedimiento que abre un formulario transparente (del tamaño de mi form principal - casi siempre toda la pantalla), y luego abriendo la ventana en sí.
- Esta solución crea un efecto de parpadeo molesto, de ahi mi pregunta para conocer una respuesta mejor.

La pregunta más interesante, y algo que definitivamente no voy a poder hacer y que queda como reto (jeje, sigo en lo mismo), es hacer ese efecto de windows cuando se coloca: Inicio - Apagar, y se espera un momento, cuando el fondo entero se convierte en gris.

¿Seguiré intentándolo por mi cuenta? Por supuesto, para eso somos programadores...

Salu2.

Hola pepe2000,
No es por criticarte, pero creo que tienes un grave problema de diseño de interfaces.
Un programa no sólo es código, sino que un gran porcentaje de su uso y calidad está reflejado por un adecuado diseño de interfaces.
Ten presente que entre el 40 y el 50% de los datos que se suministran provienen desde medios externos por lo que tener un buen balance entre la cantidad de pantallas y la distribución de controles es vital.

¿Cuantas ventanas tiene que abrir el usuario para conseguir UNA funcionalidad? Abrir 3 ya es muy desastroso para el usuario.

¿Como conseguir mejorar esto? Podrías optar por frames.

Los frames son como los formularios, unicamente que estos se colocan en los forms, e incluso dentro de otros frames. Se podría decir que es una mezcla de panel con form.

Los frames los puedes crear y destruir, ocultar y/o mostrar cuando sea necesario.

Otra opción es distribuir la interfaz en base a solapas.

Y ni que decir del aprovechamiento de la gran ventaja de contar con la reutilización de la interfaz. En ocasiones se puede conseguir tener altas, bajas, modificaciones y busquedas en un solo form... al fin y a cabo: existen elementos comunes a todos estos procesos.

Si logras detectar los elementos comunes ya podrías saber que controles como mínimo disponer y en base a ello distribuir el resto de los elementos de modo que se consiga:
1. reducir los controles
2. agilizar la carga de datos
3. disminución de ventanas

Puede que ofrecer ese efecto de "apagado" te sea una solución, pero en ocasiones esto puede ocasionar "ruido "en el proyecto: se concentra el esfuerzo en algo que puede añadir complejidad y que no aporta valor al sistema, solo una mejor cara. Es más... ¡Un usuario puede llegar a pensar de que el sistema está apagando el equipo!

De todas formas si deseas continuar con ese aspecto estético considero que con el ejemplo que te dio Neftali puedes darte idea. Si deseas que se vaya produciendo ese efecto de apagado... tienes todo en este sitio para conseguirlo.

De hecho, te doy otras pistas:
1. Emplear Timer
2. Abrir Paint: ¿Que particularidad tiene el color gris en formato RGB?¿Cúal es el máximo valor que asume? ¿Cual es el mínimo?

Te invito a que uses el buscador de los foros.

Lo de imponer un reto no va conmigo. Lo siento... no es un juego, ni hago tareas. Si dices que es un reto bien por ti, espero que lo consigas.

Si quieres recibir ayuda, concreta algo. Lamento decirlo pero aquí, no vamos a librar batalla de código, ofreceremos ayuda siguiendo tus avances y tus dudas.

Saludos,


La franja horaria es GMT +2. Ahora son las 23:14:38.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi