TPageControl でタブをドラッグして順序入れ替え
|
>マウスでTabSheet上のTabをドラッグして
>Tabの順序を交換するにはどうしたらよいのでしょうか?
面白そうなので、D3 でやってみました。
--- 以下 例文 ---
procedure TForm1.PageControl1MouseDown(Sender: TObject;...);
begin
PageControl1.BeginDrag(false);
end;
procedure TForm1.PageControl1DragOver(Sender, ...);
begin
if Sender is TPageControl then
Accept := true;
end;
procedure TForm1.PageControl1DragDrop(Sender, ...);
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; |
|