Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 如何防止滚动条超出范围?_Delphi_Properties_Scrollbar_Outofrangeexception - Fatal编程技术网

Delphi 如何防止滚动条超出范围?

Delphi 如何防止滚动条超出范围?,delphi,properties,scrollbar,outofrangeexception,Delphi,Properties,Scrollbar,Outofrangeexception,我使用代码 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 Ge

我使用代码

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;
问题是,当我添加/删除行时,有时在调整表单大小时会出现错误。上面写着“滚动条属性超出范围”

我怎样才能避免呢


thanx

您可以尝试设置属性,并调用以避免逐个设置单个属性。

哪一行确实引发了异常?我只是猜测
Min
Max
是一个进行绑定检查的属性。您也可以尝试
SetPageSize
SetParams
来避免逐个设置单个属性。@TOndrej,回答这个问题吧!如果更改富编辑的内容时没有出现错误,我怀疑OnChange处理程序中的代码与此有关。+1。仅当最小值>最大值或Max@Cosmin-最小值>最大值和Max@Sertac,如果您从
Min=100
Max=200
开始,您可以获得
Min>Max
设置
Min=300
,您可以获得
Max