Показать сообщение отдельно
  #8  
Старый 20.04.2011, 15:08
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

а зачем таймер? есть же message WM_WINDOWPOSCHANGING; да и не красиво будет по таймеру окно назад двигать. проще сразу не дать ему выезжать за границы главной формы.
Код:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm2 = class(TForm)
  private
    { Private declarations }
  public
    { Public declarations }
    procedure WMWINDOWPOSCHANGING(var Message: TMessage); message WM_WINDOWPOSCHANGING;
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.WMWINDOWPOSCHANGING(var Message: TMessage);
begin
  if PWindowPos(Message.LParam).x<Application.MainForm.Left then
    PWindowPos(Message.LParam).x:=Application.MainForm.Left;
  if PWindowPos(Message.LParam).y<Application.MainForm.Top then
    PWindowPos(Message.LParam).y:=Application.MainForm.Top;
  if PWindowPos(Message.LParam).x+PWindowPos(Message.LParam).cx>Application.MainForm.Left+Application.MainForm.Width
    then PWindowPos(Message.LParam).x:=Application.MainForm.Left+Application.MainForm.Width-Width;
  if PWindowPos(Message.LParam).y+PWindowPos(Message.LParam).cy>Application.MainForm.Top+Application.MainForm.Height
    then PWindowPos(Message.LParam).y:=Application.MainForm.Top+Application.MainForm.Height-Height;
  Message.Result:=DefWindowProc(Handle, Message.Msg, Message.WParam, Message.LParam);
end;

end.
http://data.cod.ru/98186
__________________
Пишу программы за еду.
__________________
Ответить с цитированием