Можно попробовать вот так:
(если прокатит)
Код:
function ReceivePoint: TPoint;
Function SomeName(X,Y:integer):Variant;
begin
SomeName := Point(X, Y);
SetTimer(Handle, FKeyId_TranslocateIn,
const_def_DELAYTRANSLOCATEIN, FlpTimerFunc);
end;
begin
if X < 0 then
begin
Result := SomeName(-1, 0);
end
else
if Y < 0 then
begin
Result := SomeName(0, -1);
end
else
if (X > FDownCtrl.Width -
TCustomRangeBar(FDownCtrl.ScrollBars.Slave).Width) then
begin
Result := SomeName(1, 0);
end
else
if (Y > FDownCtrl.Height -
TCustomRangeBar(FDownCtrl.ScrollBars.Master).Height) then
begin
Result := SomeName(0, 1);
end
else
begin
KillTimer(Handle, FKeyId_TranslocateIn);
end;
end;
Но по большому счету это оптимизация структуры самого кода. На быстродействие врят ли как то повлияет....