Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 20.02.2008, 22:32
NeiL NeiL вне форума
Прохожий
 
Регистрация: 29.11.2007
Сообщения: 28
Репутация: 10
По умолчанию Оптимизировать код

Господа программисты, как можно оптимизировать нижеописанный код:
Код:
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  
Старый 22.02.2008, 12:10
Аватар для XIO
XIO XIO вне форума
Новичок
 
Регистрация: 06.12.2007
Сообщения: 77
Репутация: 32
По умолчанию

Можно попробовать вот так:
(если прокатит)
Код:
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;

Но по большому счету это оптимизация структуры самого кода. На быстродействие врят ли как то повлияет....
__________________
"Люди никогда не видят то, существование чего им кажется невозможным." ©Терри Пратчетт
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 08:03.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter