Blokowanie formy

0

W jaki sposób zablokować formę, aby nie można było jej przesuwać?

0

Ustaw Styl formy na bsNone

Form1.BorderStyle := bsNone;

Forma nie będzie miała "belki" za którą można złapać i ją przesunąć.
A jak chcesz aby można było w trakcie działania programu przesuwać, kiedy zechcesz - to np podajesz:

Form1.BorderStyle := bsSingle;

i masz belke do przesuwania :D

Chyba, że chodzi ci o bardziej profesionalne sprawy ;P

0

Generalnie chodzi mi o to, aby formy znajdujące się pod spodem były niewidoczne!

// i tak będzie się można do nich przełączyć przez alt+tab/ctrl+tab - Ł

0
Piterek napisał(a)

W jaki sposób zablokować formę, aby nie można było jej przesuwać?

Sam jestem ciekaw, jak zrobić, żeby chwytając za titlebar nie moznabyło przesunąć okna [sciana]

Piterek napisał(a)

Generalnie chodzi mi o to, aby formy znajdujące się pod spodem były niewidoczne!

No to musisz ukryć sobie okna, które mają byc niewidoczne (Form2.Hide), a forma na wierzchu może być dodatkowo ustawiona na "stay-on-top".

0

Jeszcze jeden sposób jest taki, żeby przechwycić komunikat, gdy okno zmienia pozycję. Bodajże: WM_WINDOWPOSCHANGED, ale nie jestem pewien, czy to on.

No i jeśli zajdzie, to ustawić mu pozycję na taką, jaką miał na początku.

0

Możesz napisać odpowiedz na zdazrenie "onchngeposition" czy jakoś tak w ten sposób

form1.top:=124;
form1.left:=223;
0

Gwarantuję, że Ci się forma teraz nie przesunie :)

 private
    procedure WMNCHitTest(var Message: TWMNCHitTest); message WM_NCHITTEST;
    
{....}

procedure TForm1.WMNCHitTest(var Message: TWMNCHitTest);
begin
  inherited;

  with Message do
  begin
    if Result = HTCAPTION then
      Result := HTNOWHERE;
  end;
end; 

1 użytkowników online, w tym zalogowanych: 0, gości: 1