2011-07-13 7 views
1

私はコードスクロールバーが範囲外になるのを防ぐには?

procedure TMyCanvas.RichEditChange(Sender: TObject); 
var 
    ScrollInfo: TScrollInfo; 
begin 

    FillChar(ScrollInfo, SizeOF(ScrollInfo), 0); 
    ScrollInfo.cbSize := SizeOf(ScrollInfo); 
    ScrollInfo.fMask := SIF_RANGE or SIF_PAGE or SIF_POS; 
    if GetScrollInfo(FRichEdit.Handle, SB_VERT, ScrollInfo) then 
    begin 
    FVertScroll.Max := ScrollInfo.nMax; 
    FVertScroll.Min := ScrollInfo.nMin; 
    FVertScroll.PageSize := ScrollInfo.nPage; 
    FVertScroll.Position := ScrollInfo.nPos; 
    end; 
    Invalidate; 
end; 

問題は、私は/削除行を追加するときイムは、フォームのサイズを変更しようとしたとき、それは時々私にエラーを与えることであるを使用します。それは "範囲外のスクロールバーのプロパティ"

私はそれを避けることができますか?

ありがとう

+0

例外を正確に引き上げるのは、どのラインですか?私は 'Min'や' Max'がある種の束縛チェックを行うプロパティであると推測しています。 – jpfollenius

+0

'SetPageSize'、' SetParams'を試して、個々のプロパティを1つずつ設定しないようにすることもできます。 –

+0

@TOndrej、それを答えてください! –

答えて

3

あなたはPageSizeプロパティを設定し、個々のプロパティを一つずつ設定しないようにSetParamsを呼び出してみてください。

+0

+1。上記のエラーは、Min> MaxまたはMax

+0

@Cosmin - Min> MaxとMax

+1

@Sertacでは、 'Min = 100'と' Max = 200'で始めると 'Min> Max'が' Min = 300'になり、 'Max

関連する問題