Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

как за свой компонент перетащить форму


wed ©   (2002-03-11 18:49:00) 

Я убираю System Menu и нужно, нажав мышью на мой Image перетаскивать форму


lel   (2002-03-12 17:46:00) [1]

Мой вариантик 8))
ReleaseCapture();
Self.Perform(WM_NCLBUTTONDOWN, HTCAPTION, 0);
Кстате это работает для многих компонент...Не знаю как насчет всех, но повесь один этот обработчик на форму, кнопку, панель.
8))
Желаю удачи в темных делах.
С уважением Алексей.


copyr25   (2002-03-11 23:02:00) [2]

Ну, частный случай, конечно... Перетаскивает, когда мышка нажата на Image.

procedure TForm1.Image1MouseDown(Sender: TObject; Button:
TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
SendMessage(Handle,WM_NCLBUTTONDOWN,HTCAPTION,0);
end;


I/O   (2002-03-11 22:00:00) [3]

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
const
SC_DragMove = $F012;
begin
ReleaseCapture;
perform(WM_SysCommand, SC_DragMove, 0);

end;


Юрий Зотов   (2002-03-11 19:27:00) [4]

Попробуйте такую схему:

type
TForm1 = class(TForm)
Image1: TImage;
...
private
procedure WMNCHitTest(var Message: TWMNCHitTest); message WM_NCHITTEST;
end;


procedure TForm1.WMNCHitTest(var Message: TWMNCHitTest);
begin
inherited;
with Message do
if ControlAtPos(ScreenToClient(Point(XPos, YPos)), False, False) = Image1 then Result := HTCAPTION
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо