fundo preto e branco

Delphi

11/03/2005

alguem possui alguma rotima que ao abrir uma dela em showmodal deixa o fundo em preto e branco como ao do desligamento do Windows XP.


Joni

Joni

Curtidas 0

Respostas

Rômulo Barros

Rômulo Barros

11/03/2005

[b:5487e65a3f][u:5487e65a3f]Evento OnPaint do form:[/u:5487e65a3f][/b:5487e65a3f]
procedure TForm1.FormPaint(Sender: TObject);
var
  altura, coluna: Word;
begin
  altura := (ClientHeight + 255) div 256;
  for coluna := 0 to 255 do
    with Canvas do
    begin
      Brush.Color := RGB(coluna, 0, 0); { Modifique para obter cores diferentes }
      FillRect(Rect(0, coluna * altura, ClientWidth, (coluna + 1) * altura)) ;
    end;
end;


[u:5487e65a3f][b:5487e65a3f]Evento OnResize do form:[/b:5487e65a3f][/u:5487e65a3f]
procedure TForm1.FormResize(Sender: TObject);
begin
  Invalidate;
end;



GOSTEI 0
Marcelo Saviski

Marcelo Saviski

11/03/2005

Ou vc poderia copiar o desktop para um Bitmap, abrir um form que ocupasse toda a tela, ir diminuindo o brilho ou contraste da imagem, pintar no form que ocupa a tela toda, e exibir o modal na frente desse.

var
  DeskTop: TBitmap;

...

Inicializa:
  DeskTop := TBitmap.Create;
  Desktop.HandleType := bmDDB;
  Desktop.PixelFormat := pf24bit;
  DeskTop.Width := Screen.Width;
  DeskTop.Height := Screen.Height;



var
  DC: HDC;
begin
  DC := GetDC(GetDeskTopWindow);
  try
    BitBlt(FDeskTop.Canvas.Handle, 0, 0, Width, Height, DC, 0, 0, SRCCOPY);
  finally
    ReleaseDC(GetDeskTopWindow, DC);
  end;
 
  //Aqui vc deve alterar o Bitmap DeskTop, no fórum vc acha funçãoes para isso
  
  FormulariodeFundo.Brush.Bitmap := DeskTop;
  FormulariodeFundo.Repaint;
end;



GOSTEI 0
POSTAR