mbshareat
پنج شنبه 26 اردیبهشت 1398, 05:33 صبح
سلام
نمی دونم چرا استرینگ گرید در نسخه دلفی من به طور پیشفرض اندازه دستگیره وسط لغزنده رو همیشه یک اندازه می گیره.(بدون در نظر گرفتن تعداد رکوردها و رکوردهای قابل مشاهده)
می خواستم اندازه pageSize رو تغییر بدم.با کد زیر موفق نشدم.جستجوی اینترنت هم بی نتیجه بود:
procedure TForm1.SetVScrollPageSize;
var
info: TScrollInfo;
H,H2:Word;
begin
H:=StringGrid1.Height;
H2:=StringGrid1.DefaultRowHeight+StringGrid1.GridL ineWidth;
fillchar( info, sizeof( info ), 0 );
with info do Begin
cbsize := sizeof( info );
fmask := SIF_ALL;
GetScrollInfo( stringgrid1.handle, SB_VERT, info );
nPage := H div H2 -StringGrid1.FixedRows;
nMin:=StringGrid1.FixedRows;
nMax :=StringGrid1.RowCount-StringGrid1.FixedRows;
end;
setscrollinfo( stringgrid1.handle, SB_VERT, info, True );
end;
اشکال کار از کجاست؟
نمی دونم چرا استرینگ گرید در نسخه دلفی من به طور پیشفرض اندازه دستگیره وسط لغزنده رو همیشه یک اندازه می گیره.(بدون در نظر گرفتن تعداد رکوردها و رکوردهای قابل مشاهده)
می خواستم اندازه pageSize رو تغییر بدم.با کد زیر موفق نشدم.جستجوی اینترنت هم بی نتیجه بود:
procedure TForm1.SetVScrollPageSize;
var
info: TScrollInfo;
H,H2:Word;
begin
H:=StringGrid1.Height;
H2:=StringGrid1.DefaultRowHeight+StringGrid1.GridL ineWidth;
fillchar( info, sizeof( info ), 0 );
with info do Begin
cbsize := sizeof( info );
fmask := SIF_ALL;
GetScrollInfo( stringgrid1.handle, SB_VERT, info );
nPage := H div H2 -StringGrid1.FixedRows;
nMin:=StringGrid1.FixedRows;
nMax :=StringGrid1.RowCount-StringGrid1.FixedRows;
end;
setscrollinfo( stringgrid1.handle, SB_VERT, info, True );
end;
اشکال کار از کجاست؟