|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
Оптимизировать код
Господа программисты, как можно оптимизировать нижеописанный код:
Код:
function ReceivePoint: TPoint; begin if X < 0 then begin Result := Point(-1, 0); SetTimer( Handle, FKeyId_TranslocateIn, const_def_DELAYTRANSLOCATEIN, FlpTimerFunc); end else if Y < 0 then begin Result := Point(0, -1); SetTimer(Handle, FKeyId_TranslocateIn, const_def_DELAYTRANSLOCATEIN, FlpTimerFunc); end else if (X > FDownCtrl.Width - TCustomRangeBar(FDownCtrl.ScrollBars.Slave).Width) then begin Result := Point(1, 0); SetTimer( Handle, FKeyId_TranslocateIn, const_def_DELAYTRANSLOCATEIN, FlpTimerFunc); end else if (Y > FDownCtrl.Height - TCustomRangeBar(FDownCtrl.ScrollBars.Master).Height) then begin Result := Point(0, 1); SetTimer(Handle, FKeyId_TranslocateIn, const_def_DELAYTRANSLOCATEIN, FlpTimerFunc); end else begin KillTimer(Handle, FKeyId_TranslocateIn); end; end; |
#2
|
||||
|
||||
Можно попробовать вот так:
(если прокатит) Код:
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; Но по большому счету это оптимизация структуры самого кода. На быстродействие врят ли как то повлияет.... "Люди никогда не видят то, существование чего им кажется невозможным." ©Терри Пратчетт |