Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #3  
Antiguo 02-09-2008
Avatar de droguerman
droguerman droguerman is offline
Miembro
 
Registrado: abr 2005
Ubicación: tierra
Posts: 999
Poder: 22
droguerman Va por buen camino
Cita:
Empezado por neuronic Ver Mensaje
para crear este efecto podrias capturar el escritorio, pasarlo a escala de grises y ponerlo al fondo de tu aplicacion a pantalla completa, esconder la barra de windows y despues con una ventana modal la aplicacion en si!!!
En código sería algo así.
Código Delphi [-]
procedure BlancoYNegro(aControl : TControl);
var
  dsk : HDC;
  bdc : HDC;
  num, i, x, y: integer;
  pe: array[0..255] of TPaletteEntry;
  ct: array[0..255] of TRGBQuad;

  prom : byte;
  c : word;
begin
  //obtener acceso al control
  dsk := GetDC(aControl.handle);
  //tamaño de la captura
  FBitmap.Width := aControl.Width;
  FBitmap.Height := aControl.Height;
  FBitmap.PixelFormat:= pf8bit;

  num := GetPaletteEntries(FBitmap.Palette,0,256,pe);


  for i := 0 to num-1 do
  begin
    //convertir a tono de gris, puedes jugar con los valores y obtener otros
   //resultados
    c := trunc(pe[i].peRed*0.21+pe[i].peGreen*0.71+pe[i].peBlue*0.08);
    ct[i].rgbBlue := c;
    ct[i].rgbGreen := c;
    ct[i].rgbRed := c;
    ct[i].rgbReserved := 0;
  end;


  SetDIBColorTable(FBitmap.Canvas.Handle,0,num,ct);
  DeleteObject(FBitmap.ReleasePalette);

  //el mapa de bits destino aqui especificas donde quieres poner la pantalla capturada
  bdc := FBitmap.Canvas.Handle;
  BitBlt(bdc, 0,0, FBitmap.Width, FBitmap.Height, dsk, 0, 0, SRCCOPY);
  ReleaseDC(aControl.Handle, dsk);
  visible:= true;
end;

Edito: el código que te puse es para una captura en blanco y negro, para hacer el efecto de apagado, necesitas meterlo dentro de un bucle cambiando los valores numéricos (en el ejemplo 0.21 0.71 0.8) y con usando un delay al gusto del cliente.
__________________
self.free;

Última edición por droguerman fecha: 02-09-2008 a las 16:13:25.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Se puede saber cuando se esta por apagar windows? Martin API de Windows 4 27-12-2006 14:57:28
apagar windows unko! API de Windows 22 03-04-2005 13:00:59
urge. apagar windows XP mrmanuel API de Windows 3 06-09-2003 05:09:24
Apagar pc con Win XP mrmanuel OOP 5 16-07-2003 12:11:34


La franja horaria es GMT +2. Ahora son las 22:21:20.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi