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 21-01-2012
rarratia rarratia is offline
Miembro
 
Registrado: sep 2004
Posts: 50
Poder: 20
rarratia Va por buen camino
Cambiando aspecto del caption en barra de título

Tengo el siguiente problema: capturo el mensaje Paint y Activate de windows para mi ventana y poder modificar los atributos del caption de mi teform con los siguientes procedimientos privados:
Código Delphi [-]
procedure WMNCPaint(var Msg: TWMNCPaint); message WM_NCPAINT;
procedure WMNCActivate(var Msg: TWMNCActivate); message WM_NCACTIVATE;

Implemento estos procedimientos de la siguiente forma:

Código Delphi [-]
procedure Tf_main.WMNCPaint(var Msg: TWMNCPaint);
var
  Lienzo : TCanvas;
begin
  inherited;
  lienzo := TCanvas.Create;
  try
     lienzo.Handle := GetWindowDC(Self.Handle);
    with lienzo do
    begin
      Brush.Color := clActiveCaption;
      Font.Size := 12;
      TextOut(GetSystemMetrics(SM_CYMENU) + GetSystemMetrics(SM_CXBORDER),
        Round((GetSystemMetrics(SM_CYCAPTION) - Abs(Font.Height)) / 2) + 1, 'algún texto');
    end;
  finally
    ReleaseDC(Self.Handle, lienzo.Handle);
    lienzo.Free;
  end;
end;

procedure Tf_main.WMNCActivate(var Msg: TWMNCActivate);
var
  Lienzo : TCanvas;
begin
  inherited;
  lienzo := TCanvas.Create;
  try
    lienzo.Handle := GetWindowDC(Self.Handle);
    with lienzo do
    begin
      Brush.Color := clActiveCaption;
      Font.Size := 12;
      TextOut(GetSystemMetrics(SM_CYMENU) + GetSystemMetrics(SM_CXBORDER),
        Round((GetSystemMetrics(SM_CYCAPTION) - Abs(Font.Height)) / 2) + 1, ' Some Text');
    end;
  finally
    ReleaseDC(Self.Handle, lienzo.Handle);
    lienzo.Free;
  end;
end;

Esto que funciona bien en window xp, no me funciona en window 7 ¿Qué estará pasando? ¿Estoy olvidando algo? Por favor si alguien me ayuda para poder cambiar el tamaño de mi caption en el form. Gracias por anticipado
Responder Con Cita
  #2  
Antiguo 22-01-2012
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.372
Poder: 23
José Luis Garcí Va camino a la fama
Me imagino que es por culpa del Aero, hay una librería, que te permite desactivarlo y activalo la DSiWin32 la encontraras en http://gp.17slon.com/gp/dsiwin32.htm, yo la he probado bajo Windows 7 64 bits y delphi 2010 y funciona.

Espero te funcione.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
  #3  
Antiguo 23-01-2012
rarratia rarratia is offline
Miembro
 
Registrado: sep 2004
Posts: 50
Poder: 20
rarratia Va por buen camino
gracias

Gracias, voy a probar esa librería, ¿se compila con delphi? o se incluye como unidad? ¿Tiene algún método en particular?
Responder Con Cita
  #4  
Antiguo 24-01-2012
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.372
Poder: 23
José Luis Garcí Va camino a la fama
Llama la unidad en el uses, normalmente en el OnCreate pones AeroDisable y normalmente en el Onclose AeroEnabled, no hagas mucho caso al nombre de aeroDisable y Aeroenabled, lo he escrito de memoria.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
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
Cambiando el Color de la Barra Selectora del DBGrid enecumene OOP 5 21-04-2008 23:24:02
URL en la barra de titulo??? Jonnathan Varios 7 30-01-2006 20:43:24
Popups con barra de caption Jesús Pena Gráficos 0 25-01-2006 18:51:16
Cambiar título/caption de un programa Casimiro Notevi Varios 3 22-10-2005 23:03:06
Como ir cambiando el caption de un label mientras ejecuto una funcion? gandalf_uy Varios 4 25-08-2005 14:37:01


La franja horaria es GMT +2. Ahora son las 13:14:17.


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