win3.1控件页中的tabset控件有关问题
win3.1控件页中的tabset控件问题
一个tabset控件,上面生成很多tabs页的时候,会自动产生左右滚动条,这个时候在mousemove方法中通过itematpos函数得到某个tabs页的Index时会不正确,tabset控件函数itematpos代码如下:
function TTabSet.ItemAtPos(Pos:TPoint):Integer;
var
TabPos:TTabPos;
I:Integer;
Begin
Result:=-1;
If (Pos.Y<0) or (Pos.Y>ClientHeight) then exit;
For I:=0 to TabPositions.Count-1 do
begin
Pointer(TabPos):=TabPositions[I];
if (Pos.X>=TabPos.StartPos) and (Pos.X<=TabPos.StartPos+TabPos.size) then
begin
Result:=I;
Exit;
end;
end;
End;
------解决方案--------------------
delphi 2007:
声明
一个tabset控件,上面生成很多tabs页的时候,会自动产生左右滚动条,这个时候在mousemove方法中通过itematpos函数得到某个tabs页的Index时会不正确,tabset控件函数itematpos代码如下:
function TTabSet.ItemAtPos(Pos:TPoint):Integer;
var
TabPos:TTabPos;
I:Integer;
Begin
Result:=-1;
If (Pos.Y<0) or (Pos.Y>ClientHeight) then exit;
For I:=0 to TabPositions.Count-1 do
begin
Pointer(TabPos):=TabPositions[I];
if (Pos.X>=TabPos.StartPos) and (Pos.X<=TabPos.StartPos+TabPos.size) then
begin
Result:=I;
Exit;
end;
end;
End;
------解决方案--------------------
delphi 2007:
声明
- Delphi(Pascal) code
function ItemAtPos(Pos: TPoint; IgnoreTabHeight: Boolean = False): Integer;