change formatting of controlscrollbar.inc (since nobody from devels were against)

git-svn-id: trunk@12326 -
This commit is contained in:
paul 2007-10-05 01:42:04 +00:00
parent dde8cbb08a
commit 38c4cf597b

View File

@ -16,22 +16,29 @@
}
const
IntfBarKind: array[TScrollBarKind] of Integer = (SB_HORZ,SB_VERT);
IntfBarKind: array[TScrollBarKind] of Integer =
(
SB_HORZ,
SB_VERT
);
procedure TControlScrollBar.SetPosition(const Value: Integer);
var
OldPosition: Integer;
begin
if Value < 0 then begin
if Value < 0 then
begin
SetPosition(0);
exit;
end;
If ControlAutoScroll then begin
if ControlAutoScroll then
begin
if FAutoRange < 0 then
AutoCalcRange;
if Value > FAutoRange then begin
if Value > FAutoRange then
begin
{$IFDEF VerboseScrollingWinControl}
if Kind=sbHorizontal then
DebugLn(['TControlScrollBar.SetPosition FAutoRange Value=',Value,' > AutoRange=',FAutoRange]);
@ -41,7 +48,8 @@ begin
end;
end;
if Value>Range then begin
if Value > Range then
begin
{$IFDEF VerboseScrollingWinControl}
if Kind = sbHorizontal then
DebugLn(['TControlScrollBar.SetPosition Range Value=',Value,' > Range=',Range]);
@ -54,7 +62,8 @@ begin
if Kind = sbHorizontal then
DebugLn(['TControlScrollBar.SetPosition Value=',Value,' FPosition=',FPosition]);
{$ENDIF}
if Value=FPosition then exit;
if Value = FPosition then
exit;
// scroll content of FControl
OldPosition := FPosition;
@ -63,8 +72,8 @@ begin
TScrollingWinControl(FControl).ScrollbarHandler(Kind, OldPosition);
// check that the new position is also set on the scrollbar
if HandleAllocated
and (GetScrollPos(ControlHandle, IntfBarKind[Kind]) <> FPosition) then begin
if HandleAllocated and (GetScrollPos(ControlHandle, IntfBarKind[Kind]) <> FPosition) then
begin
InvalidateScollInfo;
{$IFDEF VerboseScrollingWinControl}
if Kind = sbHorizontal then
@ -85,9 +94,11 @@ begin
end;
function TControlScrollBar.GetPage: TScrollBarInc;
var ScrollInfo: TScrollInfo;
var
ScrollInfo: TScrollInfo;
begin
if HandleAllocated and (not (FControl is TScrollingWinControl)) then
begin
if HandleAllocated and (not (FControl is TScrollingWinControl)) then begin
ScrollInfo.fMask := SIF_PAGE;
GetScrollInfo(ControlHandle, IntfBarKind[Kind], ScrollInfo);
InvalidateScollInfo;
@ -97,9 +108,11 @@ begin
end;
function TControlScrollBar.GetPosition: Integer;
var ScrollInfo: TScrollInfo;
var
ScrollInfo: TScrollInfo;
begin
if HandleAllocated and (not (FControl is TScrollingWinControl)) then
begin
if HandleAllocated and (not (FControl is TScrollingWinControl)) then begin
ScrollInfo.fMask := SIF_POS;
GetScrollInfo(ControlHandle, IntfBarKind[Kind], ScrollInfo);
InvalidateScollInfo;
@ -109,9 +122,11 @@ begin
end;
function TControlScrollBar.GetRange: Integer;
var ScrollInfo: TScrollInfo;
var
ScrollInfo: TScrollInfo;
begin
if HandleAllocated and (not (FControl is TScrollingWinControl)) then
begin
if HandleAllocated and (not (FControl is TScrollingWinControl)) then begin
ScrollInfo.fMask := SIF_Range + SIF_Page;
GetScrollInfo(ControlHandle, IntfBarKind[Kind], ScrollInfo);
InvalidateScollInfo;
@ -127,7 +142,8 @@ end;
function TControlScrollBar.GetVisible: Boolean;
begin
if HandleAllocated and (not (FControl is TScrollingWinControl)) then begin
if HandleAllocated and (not (FControl is TScrollingWinControl)) then
begin
InvalidateScollInfo;
FVisible := GetScrollbarVisible(Controlhandle, IntfBarKind[Kind]);
end;
@ -160,7 +176,8 @@ begin
KindID := SM_CYHSCROLL
else
KindID := SM_CXVSCROLL;
if HandleAllocated then begin
if HandleAllocated then
begin
Result := LCLIntf.GetScrollBarSize(ControlHandle,KindID);
InvalidateScollInfo;
end else
@ -169,11 +186,13 @@ end;
procedure TControlScrollBar.SetRange(const Value: Integer);
begin
If Value < 0 then begin
if Value < 0 then
begin
Range := 0;
exit;
end;
if FRange=Value then exit;
if FRange = Value then
exit;
FRange := Value;
{$IFDEF VerboseScrollingWinControl}
if Kind = sbHorizontal then
@ -184,12 +203,13 @@ end;
procedure TControlScrollBar.SetSize(const AValue: integer);
begin
Raise EScrollBar.Create('[TControlScrollBar.SetPage] Size is readonly');
raise EScrollBar.Create('[TControlScrollBar.SetPage] Size is readonly');
end;
procedure TControlScrollBar.SetVisible(const Value: Boolean);
begin
if FVisible = Value then exit;
if FVisible = Value then
exit;
FVisible := Value;
ControlUpdateScrollBars;
end;
@ -210,8 +230,9 @@ procedure TControlScrollBar.AutoCalcRange;
TmpRange := 0;
For I := 0 to FControl.ControlCount - 1 do
With FControl.Controls[I] do
if IsControlVisible then begin
If (Align = alTop) or (Align = alNone) then
if IsControlVisible then
begin
if (Align = alTop) or (Align = alNone) then
TmpRange := Max(TmpRange, Top + Height);
end;
Range := TmpRange;
@ -227,8 +248,10 @@ procedure TControlScrollBar.AutoCalcRange;
for i := 0 to FControl.ControlCount - 1 do
begin
c := FControl.Controls[I];
if not C.IsControlVisible then Continue;
if (c.Align <> alLeft) and (c.Align <> alNone) then Continue;
if not C.IsControlVisible then
Continue;
if (c.Align <> alLeft) and (c.Align <> alNone) then
Continue;
{$IFDEF VerboseScrollingWinControl}
DebugLn(['AutoCalcHRange ',DbgSName(c),' Left=',c.Left]);
{$ENDIF}
@ -238,7 +261,8 @@ procedure TControlScrollBar.AutoCalcRange;
end;
begin
if ControlAutoScroll then begin
if ControlAutoScroll then
begin
FVisible := True;
if Kind = sbVertical then
AutoCalcVRange
@ -251,8 +275,8 @@ procedure TControlScrollBar.UpdateScrollBar;
var
ScrollInfo: TScrollInfo;
begin
if HandleAllocated
and (FControl is TScrollingWinControl) then begin
if HandleAllocated and (FControl is TScrollingWinControl) then
begin
FillChar(ScrollInfo,SizeOf(ScrollInfo),0);
ScrollInfo.cbSize := SizeOf(ScrollInfo);
ScrollInfo.fMask := SIF_ALL;
@ -261,8 +285,7 @@ begin
ScrollInfo.nPos := FPosition;
ScrollInfo.nPage := FPage;
ScrollInfo.nTrackPos := FPosition;
if (not FOldScrollInfoValid)
or (not CompareMem(@ScrollInfo,@FOldScrollInfo,SizeOf(TScrollInfo))) then
if (not FOldScrollInfoValid) or (not CompareMem(@ScrollInfo,@FOldScrollInfo,SizeOf(TScrollInfo))) then
begin
FOldScrollInfo:=ScrollInfo;
FOldScrollInfoValid := true;
@ -301,7 +324,7 @@ procedure TControlScrollBar.ScrollHandler(var Message: TLMScroll);
var
NewPos: Longint;
begin
If (csDesigning in FControl.ComponentState) then
if (csDesigning in FControl.ComponentState) then
exit; //prevent wierdness in IDE.
NewPos := FPosition;
@ -326,16 +349,20 @@ begin
{$IFDEF VerboseScrollingWinControl}
DebugLn(['TControlScrollBar.ScrollHandler Message.ScrollCode=',Message.ScrollCode,' FPosition=',FPosition,' NewPos=',NewPos,' Range=',Range]);
{$ENDIF}
if NewPos < 0 then NewPos := 0;
if NewPos > Range then NewPos := Range;
if NewPos < 0 then
NewPos := 0;
if NewPos > FRange then
NewPos := FRange;
InvalidateScollInfo;
SetPosition(NewPos);
end;
procedure TControlScrollBar.ControlUpdateScrollBars;
begin
if ([csLoading,csDestroying]*FControl.ComponentState<>[]) then exit;
if not HandleAllocated then exit;
if ([csLoading, csDestroying] * FControl.ComponentState <> []) then
exit;
if not HandleAllocated then
exit;
if FControl is TScrollingWinControl then
TScrollingWinControl(FControl).UpdateScrollBars;
end;
@ -366,8 +393,10 @@ end;
procedure TControlScrollBar.Assign(Source: TPersistent);
begin
If Source is TControlScrollBar then begin
With Source as TControlScrollBar do begin
if Source is TControlScrollBar then
begin
with Source as TControlScrollBar do
begin
Self.Increment := Increment;
Self.Position := Position;
Self.Range := Range;