Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-10-2006
afxe afxe is offline
Miembro
 
Registrado: jul 2004
Ubicación: Malaga-España
Posts: 273
Poder: 20
afxe Va por buen camino
Captura de pantalla en el OnDeactivate

Hola foristas.

He realizado un programa mdi en el cual al desactivarse un form capturo el area cliente del form desactivado (con la api bitblt), lo grabo como bitmap, lo recupero en un TImage, lo obscurezco y lo repinto en el form desactivado, para dar la impresión de dejarlo "en la sombra" (en el evento OnActivate hago desaparecer el TImage, apareciendo de nuevo el form claro y nítido).

Código:
procedure TFrmB_Base.FormDeactivate(Sender: TObject);
var
  B: TBitmap;
  SrcDC : HDC;
  iLT : Integer;
begin
  iLT := GetSystemMetrics(SM_CYCAPTION);
  B := TBitmap.Create;
  B.Width  := Self.Width;
  B.Height := Self.Height-iLT;
  try
    SrcDC := GetWindowDC(Self.Handle);
    BitBlt(B.Canvas.handle, 0, 0, B.Width, B.Height, SrcDC, 0, iLT, SRCCOPY);
  finally
    ReleaseDC(Self.Handle, SrcDC);
  end;
  b.SaveToFile ('c:\t.bmp');
  b.Free;
  MiPanel.Align := alClient;
  Image2.Picture.LoadFromFile('c:\t.bmp');
  MiPanel.Visible := True;
  MiPanel.BringToFront;
  OscurecerTImage(Image2, 180);
end;
(El componente TImage está dentro de un TPanel, para que se superponga a cualquier otro componente del form)

¿El problema? Pues que el evento OnDeactivate, que es donde hago la captura de pantalla, se lanza despues del OnCreate del nuevo Form, por lo cual en la captura realizada aparece el borde y el caption del Form que se está creado, pues hasta que no se ha creado no ha cojido el foco y no se lanza el evento Deactivate.

Creo haber rebuscado bastante en el foro pero no he encontrado la solución a esta pregunta: ¿Cómo puedo capturar el área cliente de un form sin tener en cuenta lo que pueda tener "superpuesto"?

Gracias de antemano.
Responder Con Cita
 



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
aplicación de captura de pantalla? pvizcay Varios 1 01-10-2006 18:29:28
Captura pantalla walito Gráficos 11 28-01-2006 01:37:05
Captura de errores scooterjgm OOP 3 04-10-2004 16:52:39
Tecnicas para captura de pantalla diegofhernando Varios 0 21-07-2004 17:31:38
Captura de pantalla craven API de Windows 1 29-08-2003 15:51:39


La franja horaria es GMT +2. Ahora son las 07:57:32.


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