Saturday, September 30, 2006

Zamezení a opětovné povolení pohybu formuláře

Upřímně řečeno přesně netuším, k čemu by se dal přesně využít následující tip, ale to ponechám na vás. Potřebujete-li zkrátka z nějakého důvodu zakázat uživateli pohybovat s oknem aplikace, můžete použít následující krátký kód, který přidáte do události OnCreate příslušného formuláře:
procedure TForm1.FormCreate(Sender: TObject);
begin
DeleteMenu(GetSystemMenu(Handle, False), SC_MOVE, MF_BYCOMMAND);
end;
Tím se znemožní pohyb formulářem, a to i prostřednictvím systémového menu, neboť je z něj odstraněna položka Přesunout. Pro úplnost se však sluší uvést též kód, který vše vrátí do původního stavu, takže zde je:
procedure TForm1.Button12Click(Sender: TObject);
begin
GetSystemMenu(Handle, True);
end;