Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как реализовать прилипание Form к краям десктопа (как у ICQ)? [D7, WinXP]


Страницы:   1 2

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.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо