![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Хочу таскать панели, но как? [D5]
De © (2005-12-16 17:15:00)Привет, All!
в своем приложении хочу реализовать возможность перемещения панелей на форме
в качестве перетаскиваемого компонента хотел использовать TPanel подойтет ли он или посоветуете что нибудь другое
вопрос как это реализовать (что почитать)
FrykT (2005-12-17 04:43:00) [1]Можно чуть сложнее сделать (Только зачем такие трудности?);
глобальная переменная, move: boolean; x, y: Integer;
При OnMouseDown move := true; и запоминаем координаты;
при OnMouseUp move := false;
при OnMouseMove смотрим, if move then перемещаем;
Но, в таком случае, больше можно сделать, чем в примере выше. Например курсор изменять.. или еще что-то.
Юрий Зотов (2005-12-16 19:14:00) [2]> (CHALING 32)S K i N E R © (16.12.05 18:50) [1]
Не любые, а только оконные (потомки TWinControl).
> De (16.12.05 17:15)
Это конференция по разработке компонентов, а по их использованию. Поэтому - либо Вы пишете свой компонент, либо ветка будет закрыта.
(CHALING 32)S K i N E R (2005-12-16 18:50:00) [3]{Так можно таскать мышкой TPanel по форме в run-time'е.
Поместите на форму TPanel и напишите обработчик события OnMauseDown,
запустите программу и задвинте эту панель подальше.}
procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
const
SC_DRAGMOVE = $F012;
begin
ReleaseCapture;
{а если сюда написать Form1, то можно таскать форму по экрану}
Panel1.Perform(WM_SYSCOMMAND, SC_DRAGMOVE, 0);
end;
на самом деле таким образом можно таскать по форме любые визуальные компоненты.