Вниз
Скачать: CL | DM;

Оптимищация   Найти похожие ветки 

 
Ak47   (2009-08-27 14:51) [0]

как будет более правильно и оптимально:

procedure TForm1.event_hlb2CompareItems(ListBox: TCustomListBox_;
 Section: THeaderSection_; Index1, Index2: Integer; var Result: Integer);
var
 i1, i2: TPItem2;
begin
 i1 := TPItem2(ListBox.Items.Objects[Index1]);
 i2 := TPItem2(ListBox.Items.Objects[Index2]);
 case Section.Tag of
   0: Result := CompareValue(i1.Item.ID, i2.Item.ID);
   4: Result := CompareValue(i1.Item.Memory, i2.Item.Memory);
   6: Result := CompareValue(i1.Item.Threads, i2.Item.Threads);
 end;
end;

// или

procedure TForm1.event_hlb2CompareItems(ListBox: TCustomListBox_;
 Section: THeaderSection_; Index1, Index2: Integer; var Result: Integer);
var
 i1, i2: TPItem2;
 P: Point;
begin
 i1 := TPItem2(ListBox.Items.Objects[Index1]);
 i2 := TPItem2(ListBox.Items.Objects[Index2]);
 case Section.Tag of
   0: P := Point(i1.Item.ID, i2.Item.ID);
   4: P := Point(i1.Item.Memory, i2.Item.Memory);
   6: P := Point(i1.Item.Threads, i2.Item.Threads);
 end;
 Result := CompareValue(P.X, P.Y);
end;


 
Ega23 ©   (2009-08-27 14:58) [1]

Оптимально - пофигу.
Правильно - в case else добавить.


 
Сергей М. ©   (2009-08-27 15:02) [2]


> как будет более правильно


Приведи декларацию TPItem2, без нее рассуждения о "правильности" и тем более оптимальности бессмысленны ..


 
Ak47   (2009-08-27 15:04) [3]


> Приведи декларацию TPItem2, без нее рассуждения о "правильности"
> и тем более оптимальности бессмысленны ..



 { TPItem }

 PPItem = ^TPItem;
 TPItem = packed record
            ID: Integer;
          Name: string;
       Version: string;
   Description: string;
        Memory: Integer; // Занято памяти
      Priority: string;
       Threads: Integer; // Число потоков
         Path: string;
 end;

 { TPItem2 }

 TPItem2 = class
 private
   FItem: TPItem;
 public
   constructor Create(AID: Integer; AName, AVersion, ADescription: string;
     AMemory: Integer; APriority: string; AThreads: Integer; APath: string);
   { properties }
   property Item: TPItem read FItem write FItem;
 end;


 
Сергей М. ©   (2009-08-27 15:11) [4]

Понятно.
Во 2-м варианте лишние телодвижения с P: Point, на производительность алгоритма это скажется, разумеется, не лучшим образом


 
clickmaker ©   (2009-08-27 15:11) [5]

первый на доли миллисекунд оптимальней, ибо не тратится время на Point(i1.Item.ID, i2.Item.ID);



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.017 c
2-1251782328
Sw
2009-09-01 09:18
2009.10.25
проверка готовности диска А и копирование на дискету


2-1251201731
Andy BitOff
2009-08-25 16:02
2009.10.25
Почему не срабатывает ShellExecute и чем это заменить?


15-1251178540
Andy BitOff
2009-08-25 09:35
2009.10.25
Что думают знатоки по поводу такой конфигурации?


1-1222031699
Д С
2008-09-22 01:14
2009.10.25
Событие показа формы.


11-1206715018
misha_shar
2008-03-28 17:36
2009.10.25
KOLPageSetupDialog




   Наверх