MG: added bound checks for scrollbars

git-svn-id: trunk@1594 -
This commit is contained in:
lazarus 2002-04-05 17:14:09 +00:00
parent d22da79b0b
commit 6c0dd98469
2 changed files with 16 additions and 6 deletions

View File

@ -3147,8 +3147,13 @@ begin
fGutterWidth := Value;
fTextOffset := fGutterWidth + 2 - (LeftChar - 1) * fCharWidth;
if HandleAllocated then begin
fCharsInWindow := Max(1,(ClientWidth - fGutterWidth - 2
{$IFDEF SYN_LAZARUS} - ScrollBarWidth{$ENDIF}) div fCharWidth);
{$IFDEF SYN_LAZARUS}
fCharsInWindow := Max(1,(ClientWidth - fGutterWidth - 2 - ScrollBarWidth)
div fCharWidth);
{$ELSE}
fCharsInWindow := Max(1,Max(0,(ClientWidth - fGutterWidth - 2
- ScrollBarWidth) div Max(1,fCharWidth)));
{$ENDIF}
UpdateScrollBars;
Invalidate;
end;
@ -6337,11 +6342,15 @@ end;
procedure TCustomSynEdit.SizeOrFontChanged(bFont: boolean);
begin
if HandleAllocated then begin
fCharsInWindow := Max(1,(ClientWidth - fGutterWidth - 2
{$IFDEF SYN_LAZARUS} - ScrollBarWidth{$ENDIF})
{$IFDEF SYN_LAZARUS}
fCharsInWindow := Max(1,(ClientWidth - fGutterWidth - 2 - ScrollBarWidth)
div fCharWidth);
fLinesInWindow := (ClientHeight {$IFDEF SYN_LAZARUS}-13{$ENDIF})
div fTextHeight;
fLinesInWindow := Max(0,ClientHeight -13) div Max(1,fTextHeight);
{$ELSE}
fCharsInWindow := Max(1,Max(0,(ClientWidth - fGutterWidth - 2
- ScrollBarWidth) div Max(1,fCharWidth)));
fLinesInWindow := ClientHeight div fTextHeight;
{$ENDIF}
if bFont then begin
if Gutter.ShowLineNumbers then
GutterChanged(Self)

View File

@ -405,6 +405,7 @@ begin
ScrollInfo.nTrackPos := 0;
ScrollInfo.nMax := TopMax+ClientWidth;
ScrollInfo.nPage := ClientWidth;
if ScrollInfo.nPage<=0 then ScrollInfo.nPage:=1;
ScrollInfo.nPos := TopY;
SetScrollInfo(Handle, SB_VERT, ScrollInfo, True);
ShowScrollBar(Handle,SB_VERT,True);