Статьи по программированию
примеры программного кода
Delphi, Kylix, C, C++, SQL, Visual Basic, Bash, Assembler, 1С
Qt, KOL, MFC, Rx Library, Windows, Linux, Mac OS
Перестроить вкладки TPageControl с помощью Drag and Drop
Опубликовано codeLocker в 31.07.2008 в 14:17.
// In the PageControl's OnMouseDown event handler:
procedure TForm1.PageControl1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
PageControl1.BeginDrag(False);
end;
// In the PageControl's OnDragDrop event handler:
procedure TForm1.PageControl1DragDrop(Sender, Source: TObject; X, Y: Integer);
const
TCM_GETITEMRECT = $130A;
var
i: Integer;
r: TRect;
begin
if not (Sender is TPageControl) then Exit;
with PageControl1 do
begin
for i := 0 to PageCount - 1 do
begin
Perform(TCM_GETITEMRECT, i, lParam(@r));
if PtInRect(r, Point(X, Y)) then
begin
if i <> ActivePage.PageIndex then
ActivePage.PageIndex := i;
Exit;
end;
end;
end;
end;
// In the PageControl's OnDragOver event handler:
procedure TForm1.PageControl1DragOver(Sender, Source: TObject; X,
Y: Integer; State: TDragState; var Accept: Boolean);
begin
if Sender is TPageControl then
Accept := True;
end;
procedure TForm1.PageControl1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
PageControl1.BeginDrag(False);
end;
// In the PageControl's OnDragDrop event handler:
procedure TForm1.PageControl1DragDrop(Sender, Source: TObject; X, Y: Integer);
const
TCM_GETITEMRECT = $130A;
var
i: Integer;
r: TRect;
begin
if not (Sender is TPageControl) then Exit;
with PageControl1 do
begin
for i := 0 to PageCount - 1 do
begin
Perform(TCM_GETITEMRECT, i, lParam(@r));
if PtInRect(r, Point(X, Y)) then
begin
if i <> ActivePage.PageIndex then
ActivePage.PageIndex := i;
Exit;
end;
end;
end;
end;
// In the PageControl's OnDragOver event handler:
procedure TForm1.PageControl1DragOver(Sender, Source: TObject; X,
Y: Integer; State: TDragState; var Accept: Boolean);
begin
if Sender is TPageControl then
Accept := True;
end;
Материал похожий на Перестроить вкладки TPageControl с помощью Drag and Drop
- Как сделать, чтобы компоненты отбрасывали тень?
- Помещение VCL компонентов в область заголовка
- Как перетаскивать файлы?
- Примеры использования Drag and Drop для различных визуальных компонентов
- Перемещение контролов мышкой во время выполнения приложения?
- Перетаскивание файлов в приложение
Метки
вкладки delphi delphi 7 вкладки tpagecontrol лучший интерфейс интересные интерфейсы
Навигация
Интересные сайты
Сейчас на сайте
Сейчас на сайте 0 пользователей и 2 гостя.
Статистика
Всего материалов: 1387