Перемещение формы не за заголовок
ОГЛАВЛЕНИЕ
Перетаскивание границ окна
Это описание одного из Борландовских советов:
В: Как я могу заставить форму перемещаться, щелкая и таская ее в области окна, исключая заголовок?
О: Простейший путь - "одурачить" окно, пусть оно думает, что его тастают за заголовок. Сделайте это с помощью системного сообщения wm_NCHitTest...
type
var
implementation
{$R *.DFM}
procedure TForm1.WMNCHitTest(var M: TWMNCHitTest);
begin
Перетаскивание окна с содержимым
После того, как я воспользовался вашим кодом, окно осталось на том же месте, таскался лишь его контур. Как изменить это так, чтобы при перетаскивании сохранялось содержимое окна (подобно win95 plus)?
Вот небольшой простой компонент, работающий по этому принципу...
Unit WinDrag;
interface
uses windows, sysutils, classes, dsgnintf;
type
procedure Register;
implementation
constructor TWinDrag.Create(AOwner: TComponent);
begin
destructor TWinDrag.Destroy;
begin
function TWinDrag.GetDragFlag: boolean; var Value : Boolean; begin
procedure TWinDrag.SetDragFlag(Status: Boolean);
begin
end;
procedure Register;
begin
end.
Перетаскивание формы, удерживая компонент Label
Если вы хотите переместить форму, удерживая ее мышью, воспользуйтесь приведенным ниже кодом (при необходимости перетаскивания формы, удерживая ее за другие визуальные элементы управления, например, Label, используйте этот код в их соответствующих обработчиках события):
face="Courier New" size="2"> var
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,