expertcad/POWERCAD30/UNITS/ProportionalScrollBar.pas
2025-05-12 10:07:51 +03:00

48 lines
1.0 KiB
ObjectPascal

unit ProportionalScrollBar;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TPsProportionalScrollBar = class(TScrollBar)
private
FPageSize: Integer;
protected
procedure SetPageSize(const NewPageSize: Integer);
public
procedure ClearPageSize;
published
property PageSize: Integer read FPageSize write SetPageSize;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('Professional Software', [TPsProportionalScrollBar]);
end;
procedure TPsProportionalScrollBar.SetPageSize(const NewPageSize: Integer);
var
ScrollInfo : TScrollInfo;
begin
if FPageSize = NewPageSize then Exit;
FPageSize := NewPageSize;
ScrollInfo.cbSize := SizeOf(ScrollInfo);
ScrollInfo.fMask := SIF_PAGE;
ScrollInfo.nPage := NewPageSize;
if HandleAllocated then SetScrollInfo(Handle, SB_CTL, ScrollInfo, True);
end;
procedure TPsProportionalScrollBar.ClearPageSize;
begin
SetPageSize(0);
end;
end.