Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.11;
Скачать: CL | DM;

Вниз

Перетаскивание формы   Найти похожие ветки 

 
Juice ©   (2006-05-23 20:30) [0]

Какое событие возникает когда перетаскивается форма?


 
Loginov Dmitry ©   (2006-05-23 20:53) [1]

WM_MOVE


 
Juice ©   (2006-05-23 21:05) [2]

А в событиях формы такого нет?


 
Gydvin ©   (2006-05-23 21:19) [3]

unit Unit1;

interface

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

type
 TForm1 = class(TForm)
 private
 Procedure Mymove(var msg: TMessage); Message WM_MOVE;
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

{ TForm1 }

procedure TForm1.Mymove(var msg: TMessage);
begin

showmessage("dddd");
end;

end.


 
Juice ©   (2006-05-23 21:29) [4]

Я получаю это событие только тогда когда отпускаю кнопку и передвижение уже закончено. А надо обрабатывать сам процесс перемещения.


 
Gydvin ©   (2006-05-23 21:31) [5]


> Я получаю это событие только тогда когда отпускаю кнопку
> и передвижение уже закончено. А надо обрабатывать сам процесс
> перемещения.


Ошибаетесь!!!!

procedure TForm1.Mymove(var msg: TMessage);
begin

memo1.Lines.Add(inttostr(memo1.Lines.Count))
end;


 
Juice ©   (2006-05-23 21:38) [6]

Нашел, Moving называется, но все равно не то. Лучше я от задачи вопрос поставлю : есть форма что лежит на другой форме (Parent) и надо чтобы при перемещении дочерней формы она прилипала к краям формы-владельца. Вот для левой стороны пишу типа того:

procedure TInternalForm.OnMove(var msg: TMessage);
begin
 if Self.Left<50 then Self.Left:=0;
end;

И это срабатывает, т.е. после того как пользователь отпускает кнопку форма становится в нужное положение. Но хотелось бы, чтобы при перемещении (кнопка в нажатом положении) юзер видел что форма будет пристыкована, что она примет не ту позицию где он ее отпустит а выровняется по 0. Впрочем, обычный элемент интерфейса любой нормальной программы а как реализовать не знаю.


 
Juice ©   (2006-05-23 21:44) [7]


> Ошибаетесь!!!!
>
> procedure TForm1.Mymove(var msg: TMessage);
> begin
>
> memo1.Lines.Add(inttostr(memo1.Lines.Count))
> end;

Фишка в том что у меня не стоит в настройках системы "отображать содержимое окна при перетаскивании". Если его включить то все ОК, форма после присвоения ей Left:=0 сразу прыгает на 0 и можешь перетаскивать себе дальше. А когда эта штука отключена то при перетаскивании отображается рамка, а окно стоит на месте, и только после отпускания кнопки окно перемещается туда где рамка и возникает событие Move. Как заставить эту рамку показаться где надо?


 
Juice ©   (2006-05-23 21:46) [8]

...или может быть можно как-то сделать так, чтобы "отображать содержимое окна при перетаскивании" в моем приложении было всегда? Бред конечно, но мало ли ...



Страницы: 1 вся ветка

Текущий архив: 2006.06.11;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.028 c
15-1147946804
Layner
2006-05-18 14:06
2006.06.11
Именование таблиц в 1С или как такое повторить у себя


2-1148635212
Ega23
2006-05-26 13:20
2006.06.11
Разовый экспорт данных в Excel


1-1146724669
Oljas
2006-05-04 10:37
2006.06.11
А можно ли , передать указатель на массив (SendMessage) ...


1-1146844311
Teddy24
2006-05-05 19:51
2006.06.11
Подключение к сетевому ресурсу БД из Delphi


15-1147698344
matt
2006-05-15 17:05
2006.06.11
Модули Perl