拖曳 TPageControl 中的 TTabSheet |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
可利用滑鼠拖曳來改變 TPageControl 中 TTabSheet 的 PageIndex 值
先將 PageControl1 的 DragMode 屬性設為 dmAutoMatic
var FCurrentTabSheet: TTabSheet; procedure TForm1.PageControl1DragDrop(Sender, Source: TObject; X, Y: integer); var i: integer; P: TPoint; R: Rect; begin P := Point(X, Y); for i := 0 to PageControl1.PageCount - 1 do begin R := PageControl1.TabRect(i); if PtInRect(R, P) then begin if Assigned(FCurrentTabSheet) then begin if FCurrentTabSheet.PageIndex <> i then FCurrentTabSheet.PageIndex := i; FCurrentTabSheet := nil; PageControl1.ActivePageIndex := i; end; Break; end; end; end; procedure TForm1.PageControl1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); var i: integer; begin if not Assigned(FCurrentTabSheet) then begin P := Point(X, Y); for i := 0 to PageControl1.PageCount - 1 do begin R := PageControl1.TabRect(i); if PtInRect(R, P) then begin FCurrentTabSheet := PageControl1.Pages[i]; Break; end; end; end; end;-- hagar. |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |