uses
Windows;
type
TCorner = (cLeftTop, cLeftButton, cRightTop, cRightButton);
function CornerForm(form: TCustomForm; corner: TCorner): boolean;
var
r: TRect;
begin
result := false;
if SystemParametersInfo(
SPI_GETWORKAREA,0,@r,0) then
begin
case corner of
cLeftTop: begin
form.Top := r.Top;
form.Left := r.Left;
end;
cLeftButton: begin
form.Left := r.Left;
form.Top := r.Bottom-form.Height;
end;
cRightTop: begin
form.Top := r.Top;
form.Left := r.Right-form.Width;
end;
cRightButton: begin
form.Top := r.Bottom-form.Height;
form.Left := r.Right-form.Width;
end;
end;
result := true;
end else
RaiseLastOSError();
end;