码迷,mamicode.com
首页 > 移动开发 > 详细

Delphi中拖动的方式来移动TPageControl的Tab

时间:2017-01-20 23:17:40      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:ram   proc   get   active   index   bre   rect   end   delphi   

procedure TMainForm.PageControl1MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer) ;
begin
  PageControl1.BeginDrag(False) ;
end;

procedure TMainForm.PageControl1DragDrop(Sender, Source: TObject; X,
  Y: Integer) ;
const
  TCM_GETITEMRECT = $130A;
var
  TabRect: TRect;
  j: Integer;
begin
  if (Sender is TPageControl) then
  for j := 0 to PageControl1.PageCount - 1 do
  begin
    PageControl1.Perform(TCM_GETITEMRECT, j, LParam(@TabRect)) ;
    if PtInRect(TabRect, Point(X, Y)) then
    begin
      if PageControl1.ActivePage.PageIndex <> j then
        PageControl1.ActivePage.PageIndex := j;
      Exit;
    end;
  end;
end;

procedure TMainForm.PageControl1DragOver(Sender, Source: TObject; X,
  Y: Integer; State: TDragState; var Accept: Boolean) ;
begin
  if (Sender is TPageControl) then Accept := True;
end;

Delphi中拖动的方式来移动TPageControl的Tab

标签:ram   proc   get   active   index   bre   rect   end   delphi   

原文地址:http://www.cnblogs.com/yzryc/p/6329466.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!