U trendu

Delphi – Prekrivanje radnog prostora

Nekada će vam zatrebati da prozor vaše aplikacije prekrije sve ostale prozore (drugih aplikacija), osim Taskbar-a. Da bi vaša aplikacija prekrila sve ostale objekte na radnoj površini potrebno je da procesirate WM_SETTINGCHANGE Windows poruku i da iskoristite API funkciju – SystemParametersInfo. Koristeći ovu tehniku bićete u mogućnosti da prekrijete sve ostale objekte, ostim Taskbar-a, MS Office palete alatki i sličnih paleta:


MojaForma=class(TForm)
procedure FormCreate(Sender: TObject);
………….
private
……
procedure WMSettingChange(var Msg: TMessage);
message WM_SETTINGCHANGE;
………..
protected
……..
end;

implementation

// informacija o dostupnom radnom prostoru
function GetWindowsWorkArea: TRect;
begin
SystemParametersInfo(SPI_GETWORKAREA, 0, @Result, 0);
end;

……….
//odgovor na svaku promenu velicine
//radnog prostora tokom runtime-a
procedure MojaForma.WMSettingChange(var Msg: TMessage);
var
R: TRect;
begin
if (Msg.WParam=SPI_SETWORKAREA) then
begin
R:=GetWindowsWorkArea;
SetBounds(R.Left, R.Top,
R.Right-R.Left, R.Bottom-R.Top);
end;
Msg.Result:=0;
end;

//u okviru dogadjaja OnFormCreate
//dobijamo velicinu radnog prostora,
//posto vasa forma nece dobiti
//podataka WM_SETTINGCHANGE na startup-u
procedure MojaForma.FormCreate(Sender: TObject);
var
R: TRect;
begin
R:=GetWindowsWorkArea;
SetBounds(R.Left, R.Top,
R.Right-R.Left, R.Bottom-R.Top);
end;

Pratite Krstaricu i preko mobilne aplikacije za Android i iPhone.