Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-03-2013
Avatar de cesarsoftware
cesarsoftware cesarsoftware is offline
Miembro
 
Registrado: nov 2006
Posts: 241
Poder: 18
cesarsoftware Va por buen camino
Form padre, hijos y alphablendvalue

Hola compañeros.

Siguiendo el consejo de casimiro, abro este nuevo hilo.

Necesito que el formulario principal (o la imagen que contiene alineada al client, un plano topografico, por ejemplo) no sea trasparente pero los formularios hijo si.
Sobre ese plano dibujo una casitas que muestran la actividad remota, ahora esas casitas (formularios creados en tiempo de ejecucion) no son trasparentes y tapan el plano, si son muchas, el plano del fondo ni se ve y ademas la casita se puede agrandar (tiene 2 tamaños en funcion de la cantidad de informacion a mostar).
Si creo el form hijo y le asigno el parent del formulario padre, las casitas se mueven con el plano pero cojen la propiedad alphablendvalue del padre, osea o todos trasparentes o todos opacos.
Si creo el form hijo y no le asigno el parent del formulario padre, las casitas se quedan en la posicion de la pantalla (que es el parent) donde estan y el plano se va solo, eso si, las casitas son trasparentes.

ejemplo del codigo
Código Delphi [-]
  // inicializa objetos
  Forma := TForm.Create(FormularioPadre);
  Forma.Parent := FormularioPadre;//se mueve con el padre pero no es trasparente
  // si no asigno y el formulario padre es la pantalla, son trasparentes pero no se mueven dentro del padre
  Forma.Position := poDesigned;
  Forma.Left := Left;
  Forma.Top := Top;
  if Icono = False then
  begin
    Forma.Width := 206;
    Forma.Height := 256;
  end
  else
  begin
    Forma.Width := 26;
    Forma.Height := 26;
  end;
  Forma.Color := clHotLight;
  Forma.Visible := Visible;
  Forma.BorderStyle := bsNone;
  Forma.AlphaBlend := True;
  Forma.AlphaBlendValue := 115;
  Forma.ShowHint := True;
  Forma.Hint := 'Left-Click y arrastre para mover';
  Forma.OnMouseDown := LedOnMouseDown;
  Forma.OnMouseMove := LedOnMouseMove;
  Forma.OnMouseUp := LedOnMouseUp;
  CBmodelo := TComboBox.Create(Forma);
  CBmodelo.Parent := Forma;
  CBmodelo.Top := 10;
  ...
  LedOn := TShape.Create(Forma);
  LedOn.Parent := Forma;
  LedOn.Shape := stCircle;
  ...

¿Alguna sugerencia (de escafandra, por ejemplo?

Gracias aunque sea por leer.
Responder Con Cita
  #2  
Antiguo 10-03-2013
ricardopl65 ricardopl65 is offline
Miembro
 
Registrado: nov 2008
Posts: 25
Poder: 0
ricardopl65 Va por buen camino
prueba esto

he estado haciendo unas pruebas y he sacado algo como esto.
Subo un proyecto hecho en XE2 , para otras versiones igual tienes que cambiar algun uses.

Lo he subido al FTP carpeta delphi/ejemplos/varios/mditrans.zip
porque no me deja subirlo de ningua otra manera

Última edición por Casimiro Notevi fecha: 10-03-2013 a las 21:23:25.
Responder Con Cita
  #3  
Antiguo 10-03-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Crea el .zip sin el ejecutable, deja sólo el código fuente y súbelo con la opción "archivos adjuntos", así no ocupará casi nada.
Responder Con Cita
  #4  
Antiguo 10-03-2013
ricardopl65 ricardopl65 is offline
Miembro
 
Registrado: nov 2008
Posts: 25
Poder: 0
ricardopl65 Va por buen camino
ya lo he intentado

Ya lo he intentado pero me dice exceso de cuota.
Y cuando intento ver mis adjuntos me dice:

Tú has sido excluido por las siguientes razones:
No reason was specified.
Fecha en que será levantada tu exclusión: Nunca

Lo he subido con ejecutable por si tenia problemas para compilarlo debido a las versiones de delphi
Responder Con Cita
  #5  
Antiguo 10-03-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Por eso te comento, que lo intentes sin el ejecutable, a ver si así puedes subirlo, no recuerdo cuánto es lo que puedes subir.
Responder Con Cita
  #6  
Antiguo 10-03-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por ricardopl65 Ver Mensaje
he estado haciendo unas pruebas y he sacado algo como esto.
Subo un proyecto hecho en XE2 , para otras versiones igual tienes que cambiar algun uses.

Lo he subido al FTP carpeta delphi/ejemplos/varios/mditrans.zip
porque no me deja subirlo de ningua otra manera
Hola Ricardo.

Busque el archivo "mditrans.zip" en la carpeta Delphi (y subcarpetas) del FTP y no pude encontrarlo, ¿ Tampoco te permitió subirlo allí ?

Quita el ejecutable, avisanos si continuas teniendo inconvenientes y vemos como solucionarlo.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #7  
Antiguo 10-03-2013
ricardopl65 ricardopl65 is offline
Miembro
 
Registrado: nov 2008
Posts: 25
Poder: 0
ricardopl65 Va por buen camino
edito, subido sin ejecutable y tambien he quitado la propiedad picture del timage, que era lo que hacia grande el .dfm
por lo tanto deberas asignar un bitmap pequeño al timage

Última edición por ricardopl65 fecha: 11-03-2013 a las 22:00:48.
Responder Con Cita
  #8  
Antiguo 10-03-2013
ricardopl65 ricardopl65 is offline
Miembro
 
Registrado: nov 2008
Posts: 25
Poder: 0
ricardopl65 Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola Ricardo.

Busque el archivo "mditrans.zip" en la carpeta Delphi (y subcarpetas) del FTP y no pude encontrarlo, ¿ Tampoco te permitió subirlo allí ?

Quita el ejecutable, avisanos si continuas teniendo inconvenientes y vemos como solucionarlo.

Saludos.
Lo subí pero desapareció , lo he vuelto a subir sin ejecutable, pero ya lo podeis quitar puesto que lo he podido poner como adjunto
Responder Con Cita
  #9  
Antiguo 11-03-2013
Avatar de cesarsoftware
cesarsoftware cesarsoftware is offline
Miembro
 
Registrado: nov 2006
Posts: 241
Poder: 18
cesarsoftware Va por buen camino
Gracias por tu aporte ricardo,
A ver si a lo largo de la mañana le hecho un vistazo y os cuento.
Responder Con Cita
  #10  
Antiguo 11-03-2013
Avatar de cesarsoftware
cesarsoftware cesarsoftware is offline
Miembro
 
Registrado: nov 2006
Posts: 241
Poder: 18
cesarsoftware Va por buen camino
Ya lo he probado y esta muy bien la jugada ricardo, gracias, pero esta solucion tiene 2 incovenientes, uno es que es totalmente trasparente y no "semitrasparente" como con alphabledvalue y el efecto visual cambia mucho ya que la "casita" original tiene un tono azulado.
La otra es semisolucionable, ya que al ser la forma trasparente no puedo moverla arrastando con el raton y tendria que asignar eventos a cada control de la forma pero no podria moverla pichando "en los huecos" de la forma que es lo que el usuario va a hacer.

¿Que?, ¿Se puede hacer un alphablend sin eredar la propiedad del padre?

Thanks.
Responder Con Cita
  #11  
Antiguo 11-03-2013
ricardopl65 ricardopl65 is offline
Miembro
 
Registrado: nov 2008
Posts: 25
Poder: 0
ricardopl65 Va por buen camino
una imagen de las casitas

la forma es transparente excepto el imagedit que contiene la casita, yo no le he puesto imagen por no engordar el zip.
aqui pongo una grabacion bastante mala en mp4 de como me funciona a mi.
http://www.ricardoplaza.com/download/recorder.mp4
O igual es que no entiendo bien tu pregunta
Responder Con Cita
  #12  
Antiguo 11-03-2013
Avatar de cesarsoftware
cesarsoftware cesarsoftware is offline
Miembro
 
Registrado: nov 2006
Posts: 241
Poder: 18
cesarsoftware Va por buen camino
Jopelines ricardo , los has hecho muy bien entendiendo los formularios como casitas, (que asi lo he explicado yo), ahi podrias poner sobre o alrededor de las casitas la informacion relevante, conectada, desconectada, etc.

Yo no se hacer mp4 (¿podrias decirme como?) pero esta tarde cuando vuelva a las 17:00, preparo una fotos de la aplicacion real y las publico para poder explicarme mejor, por cierto, no hay casitas, son máquinas, jejeje.

Muchas gracias por tu colaboracion, a ver si entre todos damos con la solucion.
Responder Con Cita
  #13  
Antiguo 11-03-2013
ricardopl65 ricardopl65 is offline
Miembro
 
Registrado: nov 2008
Posts: 25
Poder: 0
ricardopl65 Va por buen camino
he grabado la imagen con ScreenRecorder y pasado a mp4 con Any Video Converter.
Es que me lo tomo como un reto personal.
Mira aun mas facil usando parte del codigo del ejemplo 29 de Seoane.
Solo el formulario padre de tipo fsNormal;

haciuendo doble clic sobre cada imagen se borra;
Archivos Adjuntos
Tipo de Archivo: zip imagetrans.zip (49,8 KB, 12 visitas)

Última edición por ricardopl65 fecha: 11-03-2013 a las 16:45:21.
Responder Con Cita
  #14  
Antiguo 11-03-2013
Avatar de cesarsoftware
cesarsoftware cesarsoftware is offline
Miembro
 
Registrado: nov 2006
Posts: 241
Poder: 18
cesarsoftware Va por buen camino
Buenas, ya estoy aqui, e instalado el camrecorder (gracias) y en puesto en youtube el video que muestra los efectos
http://www.youtube.com/watch?v=LTPEj...ature=youtu.be
Como verás entre una imagen preciosa de un paisaje o un plano topografico o de planta el efecto visual cambia mucho, la aplicación funciona bien, pero si los formularios que contienen los objetos de datos fueran semitrasparentes pues como que mucho mejor

Habia pensado en dejarlos fuera del formulario padre y detectar el evento de movimiento de ventana (que no lo he buscado, supongo que existe) o el de raton onmousemove como ya hago y mover las ventanas hijas a la vez que se mueve el padre.
Pero estaba seguro de que me saldrias con que se puede crear una clase derivada de TForm y hacer que pudieran tener valores de alphablend distintos, aunque como veo que teneis controlado el tema de la imagen, a lo peor no se puede hacer lo que me gustaria (yo de derivar clases y eso, como que controlo poco).

Seguire investigando, pero me gustaria saber como sale de esta ricardo, jejeje
Responder Con Cita
  #15  
Antiguo 11-03-2013
ricardopl65 ricardopl65 is offline
Miembro
 
Registrado: nov 2008
Posts: 25
Poder: 0
ricardopl65 Va por buen camino
Lo más que consigo es esto

No se si te servirá pero esto es de momento lo que mas se acerca.
Son ventanas MDI por lo tanto se mueven con el padre.

Archivos Adjuntos
Tipo de Archivo: zip mditrans.zip (47,2 KB, 12 visitas)

Última edición por ricardopl65 fecha: 11-03-2013 a las 22:04:49.
Responder Con Cita
  #16  
Antiguo 12-03-2013
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Una ventana que esté dentro de otra no puede tener el estilo "WS_EX_LAYERED", que es lo que necesitas. Entonces lo que necesitas hacer es crear para cada "casita" dos ventanas, o una sola dependiendo del estilo que buscas. Un ejemplo que codifiqué hace un tiempo:


En realidad allí utilizo dos ventanas. La grafica de Ballon en realidad es una sola ventana. Esta es una ventana de capa (WS_EX_LAYERED Window). El problema con la ventana de capas, es que no soportan interacción gráfica. Fueron inventadas con el próposito de hacer los viejos splash screen y cosas similares. Entonces utilizo una segunda ventana para albergar la interfaz (controles y labels) del formulario. Para mover conjuntamente los dos formularios manejo el evento WM_WINDOWPOSCHANGING en uno de ellos.

La otra posibilidad es hacer algo más o menos parecido a lo que tienes. En este caso creo que sólo tendrás que manejar el evento WM_WINDOWPOSCHANGING en el formulario padre y conforme mover a los hijos. Pero para conseguir el efecto de transparencia es importante que el formulario hijo NO SEA MDI-Child.

Saludos!
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #17  
Antiguo 12-03-2013
Avatar de cesarsoftware
cesarsoftware cesarsoftware is offline
Miembro
 
Registrado: nov 2006
Posts: 241
Poder: 18
cesarsoftware Va por buen camino
Gracias cris, voy a ver si me sale.

Thanks
Responder Con Cita
  #18  
Antiguo 12-03-2013
ricardopl65 ricardopl65 is offline
Miembro
 
Registrado: nov 2008
Posts: 25
Poder: 0
ricardopl65 Va por buen camino
el problema de los MDI es que no soportan alphablend. O son transparentes (como en ultimo ejemplo que te puse ) o no lo son.
Una pregunta que se me ocurre ¿ es imprescindible que sean formularios?
Responder Con Cita
  #19  
Antiguo 12-03-2013
Avatar de cesarsoftware
cesarsoftware cesarsoftware is offline
Miembro
 
Registrado: nov 2006
Posts: 241
Poder: 18
cesarsoftware Va por buen camino
Hola ricardo,

Pues no, no es imprescindible que sean formularios, de hecho inicialmente eran paneles y como vi que me tapaban el plano, pense en el alphablend del formulario.

¿Que se te ha ocurrido?
Responder Con Cita
  #20  
Antiguo 12-03-2013
ricardopl65 ricardopl65 is offline
Miembro
 
Registrado: nov 2008
Posts: 25
Poder: 0
ricardopl65 Va por buen camino
estoy en ello de momento mirate este video a ver si se acerca a lo que quieres
http://www.ricardoplaza.com/download/ventanatrans.mp4
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Crear un form fsMDIForm y varios forms hijos citlalliDgp Varios 11 07-12-2007 15:13:31
¿Quien es mi Form Padre? gabrio OOP 4 16-10-2007 20:33:06
Nodo padre sin hijos en TTreeView jorgesl OOP 3 10-04-2006 20:24:11
Formulario padre con hijos oscarsanta Conexión con bases de datos 2 31-01-2006 13:17:13
como puedo poner form hijos ronimaxh Varios 5 22-10-2003 22:55:23


La franja horaria es GMT +2. Ahora son las 20:37:14.


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
Copyright 1996-2007 Club Delphi