Форум: "Начинающим";
Текущий архив: 2009.10.25;
Скачать: [xml.tar.bz2];
ВнизОптимищация Найти похожие ветки
← →
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 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.10.25;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.033 c