Einzelnen Beitrag anzeigen

thomasch

Registriert seit: 7. Apr 2005
57 Beiträge
 
Delphi 2007 Architect
 
#7

Re: Formular ausserhalb des Screens verhindern

  Alt 2. Jan 2006, 14:31
Ich würde TWMMoving auswerten und die Ausdehnung des Forms gegen den screen testen.
Als Ansatz :
Delphi-Quellcode:
type
  TWMMoving = record
    Msg: Cardinal;
    fwSide: Cardinal;
    lpRect: PRect;
    Result: Integer;
  end;
  TForm1 = class(TForm)
    Image1: TImage;
    cxLabel2: TcxLabel;
  private
  procedure OnMoving(var Msg: TWMMoving); message WM_MOVING;
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
procedure TForm1.OnMoving(var Msg: TWMMoving);
begin
  if self.Top<1 then
  begin
    self.Top:=1;
  end;
  if (self.Left<1) then
  begin
    self.Left:=1;
  end;
  if ((self.Left+self.Width)>screen.Width) then
  begin
    self.Left:=(screen.Width-self.Width);
  end;
  if ((self.Top+self.Height)>screen.Height) then
  begin
    self.Top:=screen.Height-self.Height;
  end;
end;
  Mit Zitat antworten Zitat