1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| function _ScrollBars(var AStart,ALen:integer;TL,AOP1,AOP2,DES:integer):boolean;
begin
result:=false;
if (AOP1> 10) then
begin
result :=true;
ALen := MulDiv((AOP2 - 17), AOP2, DES);
AStart := MulDiv(5 - (AOP2 - 17), TL, DES);
if AStart < 5 then
begin
inc(ALen, AStart - 5);
AStart := 5;
end;
if AStart + ALen > AOP2 - 17 then
ALen := AOP2 - 17 - AStart;
end;
end;
procedure TMainForm.DrawScrollBars;
var
start: Integer;
len : Integer;
begin
with FBitmap do
begin
if _ScrollBars(start, len, FLeft, Height, Width, FDesktop.Width) then
TransformBitmap(FBitmap, Bounds(start, Height - 10, len, 5),clCream);
if _ScrollBars(start, len, Ftop, Width, Height, FDesktop.Height) then
TransformBitmap(FBitmap, Bounds(Width - 10, start, 5, len),clCream);
end;
end; |
Partager