Olá pessoa hoje vou mostrar como podemos modificar o papel de parede em uma aplicação feita em Delphi, vamos ver como é simples modificar esta opção usando o registro do Windows.

Vamos começar criando uma nova aplicação e salvando a mesma com o nome prjAlterarPapel.dproj. No formulário criado automaticamente pelo nosso Delphi, vamos adicionar na seção uses as unit "Registry" e "WinProcs".

Neste ponto vamos começar a configurar o Layout do nosso formulário, será bem simples apenas para ilustrar a funcionalidade principal, que é modificar o papel de parede. Para isso vamos precisar adicionar um TButton e um TOpenDialog.

Para facilitar a reutilização de código vamos implementar uma procedure chamada Alterar, veja como ficou nossa Unit até este momento:


unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Registry, WinProcs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    OpenDialog1: TOpenDialog;
  private
    { Private declarations }
    {Veja nossa procedure criada neste ponto}
    procedure Alterar(pImagemBMP: string; pTile: Boolean);  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

end.

Agora com nossa procedure declarada, vamos implementar a mesma, para isso pare o mouse em cima da procedure, ou dentro da Classe TForm1 e pressione CTRL + SHIF + C, logo será implementado automaticamente, e nela vamos declarar o código abaixo :



procedure TForm1.Alterar(pImagemBMP: string; pTile: Boolean);
var
  Reg : TRegIniFile;
begin
  reg := TRegIniFile.Create('Control Panel\Desktop');

  with Reg do
  begin
    WriteString('', 'Wallpaper', pImagemBMP);
    if (pTile) then
       WriteString('', 'TileWallpaper', '1')
    else
       WriteString('', 'TileWallpaper', '0')
  end;
  Reg.Free;
  SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, nil, SPIF_SENDWININICHANGE);
end;

Neste momento vamos executar a procedure criada anteriormente, para isso no evento OnClick do TButton, implemente o código para executar a mesma.


procedure TForm1.Button1Click(Sender: TObject);
begin
   if OpenDialog1.Execute then
   begin
       Alterar(OpenDialog1.FileName, False);
   end;
end;


Desta forma finalizo este artigo, espero que tenham gostado, ate a próxima.

Um abraço.