Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-01-2006
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 21
gluglu Va por buen camino
Forms Sombreados

Hola Amigos !

Encontré una curiosidad para sombrear los forms en http://www.swissdelphicenter.ch/de/showcode.php?id=1296

Lo que he podido comprobar que si muestro el form de manera 'No Modal' (Form.Show) todo funciona correctamente, pero si lo muestro 'Modal' (Form.ShowModal) entonces la parte del nuevo form que se encuentre sobre otro form de la misma aplicación no se sombrea, y la que aparece fuera de la aplicación principal sí que se sombrea correctamente. En este caso particular también ocurre que si paso a otra aplicación de windows cualquiera (llámese Word, etc. ...., el mismo Delphi en modo Debug, ...), y vuelvo a mi aplicación, el sombreado aparece correctamente en cualquier caso .

Alguna ayudita del por qué y como solventarlo ?

Gracias y saludos a todos !
__________________
Piensa siempre en positivo !
Responder Con Cita
  #2  
Antiguo 14-01-2006
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 21
gluglu Va por buen camino
Buscando información adicional al respecto, encontré lo siguiente :
Cita:
After reading the MS website, the shadow is displayed to show the Z order. So the shadow may be truncated if other windows on the desktop are placed higher in the Z order.
Alguien me puede ayudar como hacer de una ventana existente, la de mayor 'orden Z' ?
__________________
Piensa siempre en positivo !
Responder Con Cita
  #3  
Antiguo 14-01-2006
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 21
gluglu Va por buen camino
Sigo investigando ...

Por otro lado he visto que al parecer hace falta la siguiente línea adicional de código :
Código:
SystemParametersInfo(SPI_SETDROPSHADOW,0,Pointer(true),0);
pero si lo intento en mi Delphi 2005, me dá error de 'Invalid TypeCast' con Pointer(true). Ya que los punteros todavía no es mi fuerte, me podría decir alguien por favor como hacer que el parámetro que debe ser de tipo puntero, me señale a 'True' ?

Esto es lo que aparece en la ayuda de Delphi bajo 'SystemParametersInfo'
Cita:
The SystemParametersInfo function retrieves or sets the value of one of the system-wide parameters. This function can also update the user profile while setting a parameter.

BOOL SystemParametersInfo( UINT uiAction, UINT uiParam, PVOID pvParam, UINT fWinIni);...
SPI_SETDROPSHADOWEnables or disables the drop shadow effect. Set pvParam to TRUE to enable the drop shadow effect or FALSE to disable it. You must also have CS_DROPSHADOW in the window class style.
Saludos de nuevo !
__________________
Piensa siempre en positivo !
Responder Con Cita
  #4  
Antiguo 14-01-2006
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 21
gluglu Va por buen camino
A pesar de todo esto ...
Código Delphi [-]
procedure TForm.CreateParams(var Params: TCreateParams);
const
  CS_DROPSHADOW = $00020000;
var
  B : longbool;
begin
  inherited;
  B := True;
  SystemParametersInfo(SPI_SETDROPSHADOW,0,B,0);
  Params.WindowClass.Style := Params.WindowClass.Style or CS_DROPSHADOW;
end;
sigue sin funcionar con Form.Showmodal
__________________
Piensa siempre en positivo !
Responder Con Cita
  #5  
Antiguo 16-01-2006
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 21
gluglu Va por buen camino
!!

Finalmente me contesto a mi mismo en todo este post !!

Ya lo conseguí ...

Encontré en la propia ayuda de Delphi lo siguiente :
Cita:
The PopupMode property controls how the top-level form behaves with respect to Window's WS_POPUP style. A window that has the WS_POPUP style is always above its "owner" in Z-order.
De esta manera he conseguido el sombreado también en el form que se llama con ShowModal
Código Delphi [-]
 Form2 := TForm2.Create(Self);
Form2.PopupMode := pmAuto;
Form2.ShowModal;
Saludos a todos !
__________________
Piensa siempre en positivo !

Última edición por gluglu fecha: 16-01-2006 a las 19:14:10.
Responder Con Cita
  #6  
Antiguo 16-01-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
gluglu, te agradezco que hayas continuado y concluido este hilo tú sólo. Mucha gente, al no recibir respuesta, opta por no publicar la suya propia una vez que la encuentran. Da gusto ver que esta vez no fue así.

Me resta una pregunta: ¿qué versión de Delphi usas? Porque no veo la propiedad PopupMode por ningún lado.
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
Estilo xp con forms mdi fabianbbg Varios 15 13-01-2006 16:40:47
Creacion y destruccion de forms lbidi Varios 7 01-09-2005 18:07:34
forms con distintas busquedas tablas Sayuri Conexión con bases de datos 1 02-08-2005 16:50:57
Problemas con las cuentas en sql plus 8 y forms 6 !! gunshit Oracle 3 26-08-2004 20:24:11
Más sobre forms Hijos y Nietos apicito OOP 2 24-07-2003 08:33:57


La franja horaria es GMT +2. Ahora son las 08:27:02.


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