Как сделать калькулятор в Delphi?

Delphi - объектно-ориентированный язык программирования, разработанный компанией Borland в 1995 году. Он основан на языке программирования Pascal, но имеет более расширенные возможности и добавлены новые функции.

Как Delphi реализует многоплатформенную разработку?

Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Delphi достигает многоплатформенности с помощью...

Устанавливаем свой WallPaper для Windows

Статьи » Система » Устанавливаем свой WallPaper для Windows

В этой статье мы рассмотрим вопрос о том, как средствами Delphi можно поменять обои на рабочем столе. Информацию о картинке, которая находится на рабочем столе, конечно же, можно найти в реестре! Она находится в ключе HKEY_CURRENT_USER, а добраться до нее можно по такому пути:

HKEY_CURRENT_USERControl PanelDesktop

А параметр, содержащий название картинки, носит имя 'wallpaper'. То есть для того, чтобы сменить обои нам надо изменить значение параметра 'wallpaper' и оповестить систему о том, что мы внесли изменения в реестр.

Итак, приступим, для работы нам понадобятся два дополнительных модуля: Registry.pas и WinProcs.pas, которые надо обязательно подключить в раздел uses Вашей программы. Нам потребуется всего одна кнопка, по нажатию на которую у нас будут меняться обои на Рабочем столе.

Для наглядности привожу полный код приложения, которое получилось у меня:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Registry, WinProcs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject); private
{ Private declarations } public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure SetWallpaper(sWallpaperBMPPath : String; bTile : boolean ); var reg : TRegIniFile;
begin
// Изменяем ключи реестра // HKEY_CURRENT_USER
// Control PanelDesktop
// TileWallpaper (REG_SZ) // Wallpaper (REG_SZ)
reg := TRegIniFile.Create('Control PanelDesktop' ); with reg do begin
WriteString( '', 'Wallpaper', sWallpaperBMPPath ); if( bTile )then begin
WriteString('', 'TileWallpaper', '1' ); end
else begin
WriteString('', 'TileWallpaper', '0' ); end;
end;
reg.Free;
// Оповещаем всех о том, что мы // изменили системные настройки SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, Nil, SPIF_SENDWININICHANGE ); end;


procedure TForm1.Button1Click(Sender: TObject); begin
SetWallpaper('c:windows1stboot.bmp', False ); end;

end.

Но надо помнить что этот код будет действовать только при отключенном ActiveDesctop. Если же он у Вас включен или Вы хотите установить на Рабочий Стол картинку в формате .JPG или .GIF, то Вам потребуется использовать код, приведенный ниже

uses
ComObj,  ShlObj;
 

procedure ChangeActiveWallpaper; const
CLSID_ActiveDesktop: TGUID = '{75048700-EF1F-11D0-9888-006097DEACF9}'; 

var
ActiveDesktop: IActiveDesktop; 

begin
ActiveDesktop := CreateComObject(CLSID_ActiveDesktop) as IActiveDesktop; ActiveDesktop.SetWallpaper('c:windowsforest.bmp',0); 

ActiveDesktop.ApplyChanges(AD_APPLY_ALL or AD_APPLY_FORCE); 

end;

 Ну вот вроде бы и все, используйте на здоровье!..

Источник http://delphid.dax.ru

Другое по теме:

Категории

Статьи

Советы

Copyright © 2024 - All Rights Reserved - www.delphirus.com