Показать сообщение отдельно
  #13  
Старый 08.08.2011, 17:47
Аватар для Viajero
Viajero Viajero вне форума
Активный
 
Регистрация: 14.06.2011
Адрес: РБ
Сообщения: 214
Версия Delphi: Delphi 7 FB 2.5
Репутация: 5849
По умолчанию

Такой подойдёт?
Код:
unit OrderClasses;
interface
uses
DetailClasses,
Contnrs,Controls;
type

{###########################################################}
{êîëëåêöèÿ äåòàëåé â çàêàçå (íåâèçóàëüíûõ)}
ODetailList = class(TObjectList)
  private
    pclParent:TWinControl;
  protected
    function GetItem(Index: Integer): ODetailItem;
    procedure SetItem(Index: Integer; const Value: ODetailItem);
  public
    constructor Create(clParent:TWinControl);
    function Join(LineItem:ODetailItem): integer;
    procedure Remove(clIndex:integer);
    property Items[Index: Integer]: ODetailItem read GetItem write SetItem; default;
    function IndexOfDetail(aDetailId: Integer): Integer;


end;


implementation
{ OGroupCollection }
constructor ODetailList.Create(clParent: TWinControl);
begin
  inherited;
  pclParent:=clParent;
end;

function ODetailList.GetItem(Index: Integer): ODetailItem;
begin
  result:=inherited items[Index] as ODetailItem;
end;

procedure ODetailList.SetItem(Index: Integer; const Value: ODetailItem);
begin
  inherited items[Index]:=Value;
end;

function ODetailList.Join(LineItem: ODetailItem): integer;
begin
result:=inherited add(LineItem);
end;

procedure ODetailList.Remove(clIndex: integer);
begin
  inherited Delete(clIndex);
end;

function ODetailList.IndexOfDetail(aDetailId: Integer): Integer;
  var cItem:integer;
begin
  for cItem:=0 to Count-1 do begin
    if Items[cItem].DetailId=aDetailId then
    begin
      Result:=cItem; exit;
    end;
  end;
      Result:=-1;
end;

end.
__________________
- Товарищ прапорщик!!! Остановите поезд!!! - Поезд СТОЙ! РАЗ! ДВА!
Ответить с цитированием