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-09-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Mostrar y ocultar la barra de título de una aplicación

Hola,

A ver si me podéis echar una mano pataliebres.

Resulta que necesito mostrar y ocultar la barra de título de la ventana de una aplicación partiendo de su "Handle". Buscando en Google encuentro que el amigo Zarko Gajic propone una solución para ocultar la barra de título, y funciona bien, podría decirse. La solución es la siguiente:

Código Delphi [-]
  SetWindowLong(
    Handle,
    GWL_STYLE,
    GetWindowLong(Handle,GWL_STYLE) and not WS_CAPTION
  );

Entonces yo, en mi infinita sabiduría de ser superior y único, digo, pues ya está, si eso oculta la barra de título, entonces esto otro la mostrará:

Código Delphi [-]
  SetWindowLong(
    Handle,
    GWL_STYLE,
    GetWindowLong( Handle, GWL_STYLE ) or WS_CAPTION
  );

Y, aunque el asunto pudiera dar más de sí, pudiera ser que algo como eso me sirviera, ¡si no fuera porque la ventana recupera su barra de título, sí, pero no la muestra hasta que no minimizo la aplicación o de alguna manera la "activo" desde la barra de tareas!

Y claro, así no... Ahora bien. ¿Alguien sabe de alguna otra solución? Tenindo en cuenta que hay que partir del Handle de la ventana de una aplicación. ¿Quizás es posible "refrescar" la ventana? Por ejemplo, si utilizo la función "FlashWindow()", parece que, efectivamente, la ventana se refresca y aparece la barra de título, pero, claro, también se ve el efecto "Flash", y eso no interesa.

En fin. A ver si alguien puede echarme una pierna con esto. Y muchas gracias de antemano.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #2  
Antiguo 13-09-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Prueba con esto:
Código Delphi [-]
SetWindowLong(Handle,GWL_STYLE,GetWindowLong(Handle, GWL_STYLE ) or WS_CAPTION);
SetWindowPos(Handle, 0, 0, 0, 0, 0, SWP_FRAMECHANGED or SWP_NOMOVE or SWP_NOREPOSITION or SWP_NOSIZE or SWP_NOACTIVATE);

PD: Perdón por tardar tanto, pero tengo las patas de liebre poco entrenadas
Responder Con Cita
  #3  
Antiguo 13-09-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Código Delphi [-]
  SetWindowPos(Handle,0,0,0,0,0, SWP_FRAMECHANGED
   or SWP_NOMOVE or SWP_NOREPOSITION or SWP_NOSIZE
    or SWP_NOACTIVATE);

¡Qué intuitivo!

Pero, en efecto, funciona. Muchas gracias Domingo.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #4  
Antiguo 26-09-2007
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
Recupero este hilo que he vuelto a consultar buscando determinada información.

David, para conseguir lo que querías, no es lo mismo hacer Form1.BorderStyle := bsNone ?? Y para devolver el borde hacer la operación inversa poniéndolo al tipo de borde que utilizabas inicialmente ??
__________________
Piensa siempre en positivo !
Responder Con Cita
  #5  
Antiguo 26-09-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

gluglu, sí que podría emplearse el estilo del borde del formulario, probablemente, pero, se trata de hacer lo propio sabiendo el "Handle" de una ventana... que no tiene porqué ser (aunque podría serlo) un formulario de Delphi.
__________________
David Esperalta
www.decsoftutils.com
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
Ocultar mi aplicacion de la barra de tareas en XP! JuanErasmo API de Windows 4 18-04-2006 01:45:11
Ocultar la barra de tareas durante la exe de la aplicación Cabanyaler OOP 7 05-04-2006 17:17:56
Ocultar tu aplicación de la barra de tareas DarkByte API de Windows 4 13-09-2003 16:11:32
ocultar aplicacion en la barra de tareas jlcasih API de Windows 5 11-09-2003 20:05:54
Ocultar tu aplicación de la barra de tareas DarkByte Varios 6 09-09-2003 11:18:41


La franja horaria es GMT +2. Ahora son las 04:22:59.


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