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

Вниз

Хочу таскать панели, но как?   Найти похожие ветки 

 
De   (2005-12-16 17:15) [0]

Привет, All!
в своем приложении хочу реализовать возможность перемещения панелей на форме
в качестве перетаскиваемого компонента хотел использовать TPanel подойтет ли он или посоветуете что нибудь другое
вопрос как это реализовать (что почитать)


 
(CHALING 32)S K i N E R ©   (2005-12-16 18:50) [1]

{Так можно таскать мышкой 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;




на самом деле таким образом можно таскать по форме любые визуальные компоненты.


 
Юрий Зотов ©   (2005-12-16 19:14) [2]

> (CHALING 32)S K i N E R ©   (16.12.05 18:50) [1]
Не любые, а только оконные (потомки TWinControl).

> De   (16.12.05 17:15)
Это конференция по разработке компонентов, а по их использованию. Поэтому - либо Вы пишете свой компонент, либо ветка будет закрыта.


 
FrykT ©   (2005-12-17 04:43) [3]

Можно чуть сложнее сделать (Только зачем такие трудности?);
глобальная переменная, move: boolean; x, y: Integer;
При OnMouseDown move := true; и запоминаем координаты;
при OnMouseUp move := false;
при OnMouseMove смотрим, if move then перемещаем;

Но, в таком случае, больше можно сделать, чем в примере выше. Например курсор изменять.. или еще что-то.



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

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

Наверх




Память: 0.47 MB
Время: 0.089 c
15-1148544478
Agent13
2006-05-25 12:07
2006.07.02
2007 Microsoft Office System Beta 2


15-1149753417
ProScan
2006-06-08 11:56
2006.07.02
Как посмотреть всё установленное оборудование в XP SP2


6-1140518682
Officeman
2006-02-21 13:44
2006.07.02
Передача данных


10-1121155518
Sinsin
2005-07-12 12:05
2006.07.02
Как можно узнать, был ли запущен сервер вручную?


1-1147812521
ychenick
2006-05-17 00:48
2006.07.02
Папки как файлы ( отображение как zip архив)