![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как реализовать прилипание Form к краям десктопа (как у ICQ)? [D7, WinXP]
Gear © (2004-09-15 21:52:00)Как реализовать прилипание Form к краям десктопа (как у ICQ)? Пожалуйста подскажите есть ли компонент готовый или примеры реализации у кого?
Gear (2004-09-15 23:19:00) [21]то,как одно из необходимых вещей, но что разве никто не запускал ICQ с открытым IE на весть десктоп? окно ICQ подвигало окно IE и все остальные и умещалось сбоку.
Fedia (2004-09-15 23:06:00) [22]А присвоение свойству главной формы FormStyle значения fsStayOnTop это случайно не то, что тебе нужно?
Svit (2004-09-15 22:59:00) [23]Свойство формы Align для чтобы "по всей высоте занимало место на десктопе" а как с другими окнами сделать - не знаю.
Svit (2004-09-15 22:59:00) [24]Свойство формы Align для чтобы "по всей высоте занимало место на десктопе" а как с другими окнами сделать - не знаю.
Gear (2004-09-15 22:26:00) [25]Спасибо! Только вот ещё чтобы оно по всей высоте занимало место на десктопе и чтобы выталкивало все окна из своего региона как это делает ICQ.
GanibalLector (2004-09-15 22:00:00) [26]unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
type
TForm1 = class(TForm)
private
{ Private declarations }
procedure WMEXITSIZEMOVE(var Msg: TMessage); message WM_EXITSIZEMOVE;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.WMEXITSIZEMOVE(var Msg: TMessage);
var Screen: TRect;
begin
inherited;
SystemParametersInfo(SPI_GETWORKAREA, 0, @Screen, 0);
if Left < Screen.Left then Left := Screen.Left;
if Top < Screen.Top then Top := Screen.Top;
if (Left + Width) > Screen.Right then Left := (Screen.Right - Width);
if (Top + Height) > Screen.Bottom then Top := (Screen.Bottom - Height);
Msg.Result := 0;
end;
end.