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 02-09-2008
Avatar de neuronic
neuronic neuronic is offline
Miembro
 
Registrado: jul 2007
Ubicación: Catalunya
Posts: 32
Poder: 0
neuronic Va por buen camino
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!!!
Responder Con Cita
  #2  
Antiguo 02-09-2008
Avatar de droguerman
droguerman droguerman is offline
Miembro
 
Registrado: abr 2005
Ubicación: tierra
Posts: 999
Poder: 20
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
  #3  
Antiguo 15-06-2011
Avatar de juanlaplata
juanlaplata juanlaplata is offline
Miembro
 
Registrado: ene 2007
Ubicación: La Plata, Bs. As. (Argentina)
Posts: 212
Poder: 18
juanlaplata Va por buen camino
Solo para q quede registrado por si alguien llega mediente una busqueda.
A mi tambien me interesaba dar este efecto a mi aplicacion , etc ... y un dia me desperte creativo ( dicho asi por utilizar solo lo que se tiene a mano y alcanze de conocimientos ) y se me ocurrio lo siguiente.
Tener un Form vacio, sin borde, sin componentes, sin nada, con las siguientes propiedades:
---------------------------
AlphaBlend = True
AlphaBlendValue = 200
BorderStyle = bsNone
WindowState = wsMaximized
---------------------------

Luego, al momento de usar dicho efecto;
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
Form3 := TForm3.Create(Application);
Form3.Show;
//----------------------------------
Form2 := TForm2.Create(Application);
Form2.ShowModal;
Form2.Free;
//----------------------------------
Form3.Free;
end;
Donde Form1 es el ppal, Form2 es el q quiero que quede activo en primer plano, y Form3 es el q produce el efecto de apagado.
Y para aquel que quiere llegar un poco mas alla, se puede hacer una rutina jugando con la propiedad AlphaBlendValue llevandola desde 0 hasta 200 para q el efecto sea progresivo .

Última edición por juanlaplata fecha: 15-06-2011 a las 14:53:56.
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
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 04:50:41.


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