Продожение "Работа со структурами. Access violation"
От: Children  
Дата: 08.12.03 16:16
Оценка:
Что имеем: 3 класса
  TStaffs = class(TObject)
  private
    FidstStaff: integer;
    FStaffName: Ansistring;
    procedure SetIdstStaff(aValue: integer);
    procedure SetStaffName(const aValue: Ansistring);
  public
    constructor Create(aIdstStaff: integer; const aStaffName: Ansistring);
    destructor Destroy;override;
    property idstStaff: integer read FidstStaff write SetIdstStaff;
    property StaffName: Ansistring read FStaffName write SetStaffName;
  end;

  TDepartmentData = class(TObject)
  private
    FidstDepartment: Integer;
    FidstRank: integer;
    FStaffsList: TList;
  protected
    function GetStaffs(aIndex: integer): TStaffs;virtual;
    function GetStaffsCount: integer;virtual;
  public
    constructor Create(aIdstDepartment: integer; aIdstRank: integer);
    destructor Destroy;override;
    function AddStaff(aIdstStaff: integer; const aStaffName: Ansistring): integer;
    property idstDepartment: integer read FidstDepartment write FidstDepartment;
    property idstRank: integer read FidstRank write FidstRank;
    property Staffs[aIndex: integer]: TStaffs read GetStaffs;
    property StaffsCount: integer read GetStaffsCount;
  end;

  TDepartment = class(TObject)
  private
    FDepartmentData: TList;
  protected
    function GetDepartment(aIndex: integer): TDepartmentData;virtual;
    function GetDepartmentCount: integer;virtual;
  public
    constructor Create();
    destructor Destroy;override;
    function AddDepartment(aIdstDepartment: integer; aIdstRank: integer): integer;
    property Department[aIndex: integer]: TDepartmentData read GetDepartment;
    property DepartmentCount: integer read GetDepartmentCount;
  end;

Вопрос: как из TDepartment добавлять Staff'ов в TDepartmentData?
Re: Продожение "Работа со структурами. Access violation"
От: Dimonka Верблюд  
Дата: 08.12.03 16:21
Оценка:
Здравствуйте, Children, Вы писали:

C>Что имеем: 3 класса

C>Вопрос: как из TDepartment добавлять Staff'ов в TDepartmentData?

Department.Departments[Index].AddStaff(ID, Name);
Re[2]: Продожение "Работа со структурами. Access violation"
От: Аноним  
Дата: 08.12.03 16:25
Оценка:
Здравствуйте, Dimonka, Вы писали:

D>Здравствуйте, Children, Вы писали:


C>>Что имеем: 3 класса

C>>Вопрос: как из TDepartment добавлять Staff'ов в TDepartmentData?

D>Department.Departments[Index].AddStaff(ID, Name);


Ну спасибо. Хороший урок получился.
Re[2]: Продожение "Работа со структурами. Access violation"
От: akasoft Россия  
Дата: 08.12.03 20:35
Оценка:
Здравствуйте, Dimonka, Вы писали:

D>Department.Departments[Index].AddStaff(ID, Name);


А ещё можно сократить запись до приличного

Department[Index].AddStaff(ID, Name);


если сделать объявление

property Department[aIndex: integer]: TDepartmentData read GetDepartment; default;


Ну и в том же духе для Staffs:

property Staffs[aIndex: integer]: TStaffs read GetStaffs; default;
... << RSDN@Home 1.1.2 beta 1 >>
Re[3]: Продожение "Работа со структурами. Access violation"
От: Arioch  
Дата: 08.12.03 21:28
Оценка:
The stars so gaily glistened... (Mon, 08 Dec 2003 20:35:55 GMT @899)
...while the fading voice of akasoft whispered through the darkness:

a> А ещё можно сократить запись до приличного


Что удивительно — достаточно было бы почитать исзодники класса TOnjectList
или TStringList
--
If i had ears, i'd heard none: WinAMP de-instaled.
http://Arioch.nm.ru/FL/Fidolook_SL.png Mail: the_Arioch<at>nm<dot>ru
Posted via RSDN NNTP Server 1.8 beta
Re[3]: Продожение "Работа со структурами. Access violation"
От: Dimonka Верблюд  
Дата: 09.12.03 08:45
Оценка:
Здравствуйте, akasoft, Вы писали:

A>А ещё можно сократить запись до приличного

...
A>если сделать объявление

...
A>Ну и в том же духе для Staffs:

...

Всё можно сделать,
лишь бы человек понял, что он делает не так..
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.